目录
  • 一、前言
  • 二、定义与调用
    • 1.概述
    • 2.格式
    • 3.调用
    • 4.注意
  • 三、范例
    • 1. 例题 1
    • 2. 例题 2
    • 3. 例题 3
  • 四、方法调用的内存图
    • 五、重载
      • 1.概述
      • 2.例题
      • 3.总结

    一、前言

    • 学习概述:学习四种不同类型的方法应用、方法被调用时的内存图、重载
    • 学习目标:熟练掌握方法的应用以及重载

    二、定义与调用

    1.概述

    • 定义:方法是一种语法结构,把一段代码封装成一个功能,方便重复调用
    • 分类:一般分为参数(带/不带)、返回值(有/无)
    • 好处:提高代码复用性、逻辑更加清晰

    2.格式

    修饰符 返回值类型 方法名( 形参列表 )
    {
        //方法体
        return 返回值; 
    }

    范例:

    Java零基础精通方法篇

    3.调用

    方法必须通过程序调用 才能运行,调用格式如下:

    方法名(…);

    范例:

    int sum = add(10, 20);
    System.out.println(sum);

    4.注意

    • 修饰符:目前暂时使用public static 修饰
    • 形参:可以没有,但有多个需要逗号分隔,调用时需要传入对应类型的变量值
    • 返回值:如果方法定义了返回类型,方法内部的代码段一定要体现。如果方法不需要返回结果,返回值类型必须申明成void(无返回值)

    三、范例

    1. 例题 1

    设计一个方法(无参、无返回值)用于打印两个数字的大小关系

    编码实现:

    public static void main(String[] args) 
    {
    	getRelation();//调用方法
    }
    public static void getRelation()
    {
    	int a=10;
    	int b=20;
    	if(a>b)
    	{
    		System.out.println("a大于b");
    	}
    	else if(a<b)
    	{
    		System.out.println("a小于b");
    	}
    	else
    	{
    		System.out.println("a等于b");
    	}
    }

    输出结果:

    a小于b

    2. 例题 2

    设计一个方法(有参、无返回值)用于打印两个数字的最大值

    编码实现:

    public static void main(String[] args) 
    {
    	getMax(10,20);//调用方法
    }
    public static void getMax(int a,int b)//带参无返回值
    {
    	if(a>b)
    	{
    		System.out.println(a);
    	}
    	else
    	{
    		System.out.println(b);
    	}
    }

    输出结果:

    20

    3. 例题 3

    设计一个方法(有参、有返回值 int 型)用于打印两个数字的最大值

    编码实现:

    public static void main(String[] args) 
    {
    	System.out.println(getMax(10,20));//调用方法
    }
    public static int getMax(int a,int b)//带参无返回值
    {
    	if(a>b)
    	{
    		return a;
    	}
    	else
    	{
    		return b;
    	}
    }

    输出结果:

    20

    四、方法调用的内存图

    Java零基础精通方法篇

    • 方法未被调用,在方法区中的字节码文件中存放
    • 方法调用,进入到栈内存中运行
    • java程序编译生成class字节码文件,方法区存入main方法、eat、study、eat方法。进入主函数调用,在栈内存运行输出结果。

    五、重载

    1.概述

    定义:同一个类中,出现多个方法名称相同,但是形参列表不同(类型不同或数量不同),与返回值无关

    例如下面几个例子,判断是否为方法重载?

    Java零基础精通方法篇

    • 第一个不是,与返回值无关
    • 第二个是,形参数量不同
    • 第三个是,形参定义类型不同
    • 第四个不是,不在同一个类中

    2.例题

    构造三个重载的方法,分别实现两个int型整数相加的和、两个double类型数据相加的和、三个int类型数据相加的和

    编码实现:

    public static void main(String[] args)
    {
    	int result=sum(10,20);
    	System.out.println(result);
    	double result1=sum(10.0, 20.0);
    	System.out.println(result1);
    	int result2=sum(10, 20,30);
    	System.out.println(result2);
    }
    public static int sum(int a,int b)
    {
    	return a+b;
    }
    public static double sum (double a,double b)
    {
    	return a+b;
    }
    public static int sum(int a,int b,int c)
    {
    	return a+b+c;
    }

    输出结果:

    30
    30.0
    60

    3.总结

    • 重载可读性好,方法名称相同是同一类型的功能,但通过形参不同实现功能差异化的选择
    • 形参列表不同:形参的个数、类型、顺序不同,不关心形参的名称
    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。