我的Java——方法的重载
使用对象
要访问或调用一个对象的域或方法 需要用算符“."连接对象及其域或方法
如:
System.out.println(p.name);
p.sayHello();
由于只能通过对象变量来访问这个对象的域或方法 不通过引用变量就无法访问其中的域或方法 对于访问者而言 这个对象是封装成一个整体的 这正体现了面向对象的程序“封装性”
方法的重载
在面向对象的程序语言设计中 有一些方法的含义相同 但带有不同的参数 这些方法使用相同的名字 这就叫做方法的重载(overloading)。方法的重载是实现“多态”的一种方法。
多个方法享有相同的名字 但是这些方法的参数列表必须不同 即:或者参数个数不同 或者是参数类型不同 或者参数类型的顺序不同
例:
void sayHello(){
System.out.println("Hello!My name is "+name);
}
void sayHello(Person another){
System.out.println("Hello,"+another.name+"!My name is"+name);
}
这里 两个函数都叫sayHello,都表示问好。一个不带参数,表示向大家问好;一个带另一个Person对象作参数 表示想某个人问好
在调用这两个方法时 可以不带参数 也可以带一个Person对象作参数 编译器会自动根据所带参数的类型来决定具体调用方法。
构造方法的重载
构造方法也可以重载 要求使用不同的参数个数 不同的参数类型 不同的参数类型顺序
构造方法的重载 可以让用户用不同的参数来构造对象
以下是Person的两种构造方法
Person(String n,int a){
name=n;
age=a;
}
Person(String n){
name=n;
age=-1;
}
前一个构造方法中,带有姓名及年龄信息;后一个构造方法,只有姓名信息,年龄信息未定,用一个特殊值(-1)表示。