1.this
this指构造器正在构造的对象。
2.什么情况下可以不用this
如下代码:
public class Cat {
private String name1;
private String name2 ="00";
public Cat(String name1,String name2){
this.name1 = name1;
name2 = name2;
System.out.println("构造器中的:"+name2);
}
public void getCatName(){
System.out.println(name1);
System.out.println(name2);
}
public static void main(String[] args) {
Cat cat = new Cat("11", "22");
cat.getCatName();
}
}
结果如下:
构造器中的:22
11
00
name1的属性赋值用了this,name2没有用this,此时恰巧构造器形参也叫name2,那么“name2 = name2”就会出问题,即无法正确给属性name2赋值。
idea给出提示:变量“name2”被分配给自身
3.总结
如果构造函数形参与属性名重名,那么赋值时需要用this,否则赋值语句等号左侧会被认为是形参自己。如果构造函数形参与属性名不同,则可不带this。
构造函数尽量带上this。