这篇笔记是对之前的方法详解的补充

一、方法的重载

定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。

  • 方法名相同

  • 方法的参数类型,参数个不一样

  • 方法的返回类型可以不相同

  • 方法的修饰符可以不相同

  • main 方法也可以被重载

class MyClass {
    int height;
    MyClass() {
        System.out.println("无参数构造函数");
        height=4;
    }
    MyClass(int i) {
        System.out.println("房子高度为 " + i + " 米");
        height = i;
    }
    void info() {
        System.out.println("房子高度为 " + height + " 米");
    }
    void info(String s) {
        System.out.println(s + ": 房子高度为 " + height + " 米");
    }
}
public class Test {
    public static void main(String[] args) {
        MyClass t = new MyClass(3);
        t.info();
        t.info("重载方法");
        //重载构造函数
        new MyClass();
    }
}

二、可变参数

  • Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。

可变参数的特点:

  1. 只能出现在参数列表的最后;

  2. ...位于变量类型和变量名之间,前后有无空格都可以;

  3. 调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中一数组的形式访问可变参数。

public class Test {
    public static void main(String[] args) {
        Test t=new Test();
        t.test(1,0,1,2,3,4,5,6);
    }
    // ...可变参数,只能在参数列表的最后,int... i,int x是错误的
    public void test(int x,int... i){
        System.out.println("x = "+x+",i中第3个数是:"+i[2]);
    }
}

  • 可变参数的本质就是数组

总结

  • 对方法详解的一些补充。
  • 方法不止有重载,还有重构,这两者要区分开,不能混为一谈

Q.E.D.