构造方法与方法重载(Overload)

来源:互联网 发布:国内实时数据库 编辑:程序博客网 时间:2024/06/06 02:57

java的构造方法与方法重载

public class Person {    String name; //用于描述姓名的成员变量    int age;     //用于描述年龄的成员变量    //自定义无参的构造方法    Person(){ //构造方法的方法名称与类名完全一致    }    //自定有有参的构造方法,能够接受姓名和年龄作为实参    Person(String s,int i){ //构造方法的方法名称与类名完全一致        name = s;        age = i;    }    //自定义成员方法实现姓名和年龄的打印    void show(){        System.out.println("我是"+name+",今年"+age+"岁了!");    }    //自定义成员方法实现参数传入姓名的打印    void show(String s){        System.out.println("传入的姓名是:" + s);    }    public static void main(String[] args) { //main()方法        //创建Person类型的对象并使用引用变量进行记录        Person p = new Person();        //当调用一个方法时,根据方法名跳转过去执行方法体语句,执行完毕跳转回来        //如:调用show()方法        p.show(); //null 0        //表示又创建了一个对象,并将地址记录到p2中        Person p2 = new Person("张飞",30);        p2.show(); //张飞 30         p2.show("关羽"); //传入的姓名是:关羽    }}

a)、构造方法的方法名称与类名完全一致,以至于大小写都一模一样。
b)、构造方法没有返回值,连void都没有。
c)、当创建一个新的对象的时,会自动调用构造方法来进行该对象中成员变量的初始化工作。

默认构造方法
当自定义类总没有声明任何形式的构造方法时,编译器则会自动添加一个无参的空构造方法。叫做默认构造方法。
但是类中如果自定义了构造方法,编译器就不再会提供任何形式的构造方法。


方法的重载
在同一个类中,方法名相同参数列表不同的方法之间构成重载关系(OVERLOAD)。

public class TestOverload {    void show(){        System.out.println("show()");    }    void show(int i){       //可以构成重载,体现在参数的个数不同        System.out.println("show(int)");    }    void show(double d){     //可以构成重载,体现在参数的类型不同        System.out.println("show(double)");    }    void show(int i,double d){        System.out.println("show(int, double)");    }    void show(double d,int i){ //可以重载体,体现在参数的顺序不同        System.out.println("show(double, int)");    }    public static void main(String[] args) {        TestOverload to = new TestOverload();        to.show();        to.show(33);        to.show(0.25);        to.show(66,0.25);        to.show(3.14,33);    }}

方法重载的主要形式有:

  • 参数的个数不同
  • 参数的类型不同
  • 参数的顺序不同

与形参变量名和返回值类型无关,但是建议返回值类型最好相同。

判断方法是否重载的方法:判断调用方法能不能加以区分。

方法重载的意义(作用)在于:
调用者只需要记住一个方法名就可以调用各种不同的版本,从而实现多种类型数据的处理。

原创粉丝点击