Java中方法的重载

一、方法的定义和调用

  • 在进行方法的重载介绍之前,我们先复习一下之前所讲的方法的定义和调用

1.1方法的定义

  • 方法的位置

  • 方法定义的格式:

[访问修饰符] 方法的返回值类型 方法名(形参列表) {

                方法体

                return  与返回值类型相同的值或参数;// 返回值类型不为void才有return

}

  • 访问修饰符:可以省略,也可以是public、private、protected、static、final、abstract其中一个,需要注意public、private、protected只能出现一个
  • 方法的返回值类型:可以是数据类型,也可以是void,如果使用的是void,那么就没有return,如果一开始使用的不是void,就需要在return后面加上与返回值类型相同的变量或者参数(如果形参类型与返回值相同,后续又需要拿到这个实参,可以 return 形参)
  • 方法名:一般首字母小写,也适用于驼峰命名规则,一般动词在前,名词在后,不宜过长
  • 形参列表:定义方法可以接受的参数,由0-N[数据类型 参数名] 中间由[ , ]连接而成,一旦指定了形参,那么在调用该方法时就必须传入实参

  • 方法的分类:

根据是否带有返回值,是否带有参数,方法可分为以下四类

  • 无参数无返回值
  1. 在本类中引用: 方法名();
  2. 在其他类中引用:对象.方法名
  • 无参数有返回值
  1. 在本类中引用: 变量 =  方法名(); //有返回值,需要定义一个与返回值类型相同的变量来接收返回值
  2. 在其他类中引用:变量 = 对象.方法名(); //有返回值,需要定义一个与返回值类型相同的变量来接收返回值
  3. 或者直接
    System.out.println(对象.方法名());

  • 有参数无返回值
  1. 在本类中引用:方法名(实参列表); //有参数,故引用时需要在括号内传入实参
  2. 在其他类中引用:对象.方法名(实参列表);//有参数,故引用时需要在括号中传入实参
  • 有参数有返回值
  1. 在本类中引用:变量 = 方法名(实参列表);
  2. 在其他类中引用:变量 = 对象.方法名(实参列表);
  3. 或者直接:
    System.out.println(对象.方法名(实参列表));
  4. 因为有返回值,所以需要定义一个与返回值类型相同的变量来接收返回值
  5. 因为有参数,所以括号中要传入相应的实参

注意点:

第二个无参有返:

  • return 后面可以填跟返回值类型相同的变量即可  即return 返回值的变量

    public String run(){

        System.out.println("这是无参数有返回值的情况,return后面的类型要与返回值类型相同");
        return "foot";
    }

第四个有参有返

  • return后面填跟返回值类型相同的变量或者参数,如果后续需要取到这个参数,那么就在return后面填入这个形参,例如形参为 (String food),那么就"return food.",后续在调用这个方法的时候进行实参赋值,再用变量来接收,就可以取到这个值了,

在Dog类中:这里括号中的food参数和方法的返回值类型相同都是String,

   public String eat(String food){

        System.out.println("这是有参数有返回值的情况。return后面的类型要与返回值类型一致");

        //这里的return传入括号中的参数名
        return food;

    }

在测试类中:通过对象.方法名(实参列表);进行方法调用,再用与返回值相同类型的a接收执行方法后所产生的返回值,打印输出,观察控制台是否拿到

      //调用有参有返的方法,有返回值,需要变量接收,也需要在括号内传入实参
       String a = dog.eat("rich");
       //输出“吃的是rich”
        System.out.println("吃的是"+a);

二、方法的重载

重载:指在一个类中有多个方法,方法名相同,但方法的参数不同(参数的个数或者种类不同)

注意点:

  • 方法名相同
  • 方法参数类型,参数个数不一样
  • 方法的返回类型可以不相同
  • 方法的修饰符可以不相同
  • main方法也可以被重载
public class Test {

    public int plusMethod(int x,int y){
        return x +y;
    }

    public double plusMethod(double x,double y){
        return x + y;
    }

    public static void main(String[] args) {

        Test test = new Test();

        //有返回值,定义一个与返回值类型相同的变量接收返回值,
        //调用方法时传入实参
        int num = test.plusMethod(1,2);
        System.out.println("num=" + num);

        //有返回值,定义一个与返回值类型相同的变量接收返回值
        //调用时传入实参
        double num1 = test.plusMethod(11.0,12.2);
        System.out.println("num1="+num1);
    }

}

以上的例子的两个“ plusMethod()”方法,都在同一个类中,都有相同的方法名,但是由于方法的参数l类型不同,一个是int,一个是double,所以发生了方法的重载。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值