方法的签名:
方法名+参数列表合起来叫做方法的签名
方法/函数的重载(overload):
- 发生在同一个类中,方法名相同,参数列表不同,方法体不同,与返回值类型无关
- 编译器在编译时会根据方法的签名自动绑定调用的方法,主要是方便调用该方法
注意:参数列表不同指的是:1,参数个数不同。2,参数类型不同。
如果参数类型不同,只是变量名不一样不算
例
void sayHi(){}
String sayHi(int a){return "a";}
void sayHi(String name,int a){}
void sayHi(String newname,int b){}//这样不算重载,会报错
调用时根据传进的参数自动调用对应的方法
sayHi();
sayHi(3);
sayHi("abc",2);
构造方法:
- 给成员变量赋初值
- 与类同名,没有返回值类型
- 在创建(new)对象时被自动调用
- 若自己不写构造方法,则编译器默认一个无参的构造方法
若自己写了构造方法,则不再提供默认的无参构造 - 构造方法可以重载
this:
指代当前对象,哪个对象调用方法指的就是哪个对象
只能用在方法中,方法中访问成员变量之前默认有个this.
this的用法:
- this.成员变量名-------------访问成员变量
- this.方法名()---------------调用方法(一般不用)
- this()----------------------调用构造方法
- 使用this()调用构造函数必须是第一条语句
- 不可以使用函数名调用构造函数
例:
class Student{
int age;
String name;
String address;
Student(int age,String name,String address){
this(age,name);//使用this()调用构造函数必须是第一条语句
// Strudent(age,name);这样写是不允许的,只能用this调。
this.address = null;//当局部变量和成员变量同名时,用this
}
Student(int age,String name){
this.age = age;
this.name = name;
}
Student(){
this.age=0;
this.name=null;
this.address=null;
}
}