每个对象在堆中创建后都会生成一个this属性里边存的是当前对象的地址,当你使用this时会指向当前对象。
使用场景1:当我们在构造器初始化成员变量时,成员变量和局部变量重名无法区分
public class Animals {
private String name;
private int age;
private int weight;
public Animals(String name, int age, int weight) {
this.name=name;
this.age=age;
this.weight=weight;
}
}
使用场景2:调用本类的方法
public class Test {
public static void main(String[] args) {
Animals animal = new Animals();
animal.style();
}
}
class Animals{
public void run() {
System.out.println("在地上跑");
}
public void style() {
System.out.println("这是运动方式");
this.run();
}
}
场景3:调用本类的其他构造器
public class Test {
public static void main(String[] args) {
Animals animal = new Animals();
}
}
class Animals{
public Animals() {
this("zhangsan",18);
System.out.println("这是空参构造器");
}
public Animals(String name,int age) {
System.out.println("这是信息构造器"+name+age);
}
}