this指代当前new的对象,动态的执行不同的对象
有以下几种用法
- 构造器的首行调用本类中的其他构造器
this(参数列表);
注意:必须用在构造器首行才可以
构造器之间不能相互调用
public class Student{
public int age;
public String name;
public Student(String stuName){
name=stuName;
}
public Student(String stuName,int stuAge){
this(stuName);
age=stuAge;
}
public static void main(String[] args) {
Student stu1=new Student("小明");
Student stu2=new Student("小黄",12);
}
}
调用本类中其他构造器可以减少重复的代码,提高编码效率。
- 区分同名变量
this存储这个对象的地址。在成员方法中,this指代当前调用这个成员方法的对象。如果出现同名变量的问题,想要指代成员变量必须使用this,因为就近原则,同名变量默认的是局部变量。如果不存在同名问题,this可以省略。在构造器中,this指代当前new的对象
public class Student{
public int age;
public String name;
public Student(String name){
this.name=name;
}
public Student(String name,int age){
this(name);
this.age=age;
}
public static void main(String[] args) {
Student stu1=new Student("小明");
Student stu2=new Student("小黄",12);
}
}
注意: this和static不能同时使用。