引出this关键字
javaBean中的setter方法为了使形参便于理解和字段同名,方法中的成员和值如何区分?
class User{
private String name;
User(){ //构造器中的this
System.out.println(this);
System.out.println(this.name);
}
public String getName() {
return name;
}
public void setName(String name) { //方法中的this
//如果没有this,则方法中遵循就近原则,会使name的值为默认值null。
this.name = name;
}
public void printName(){
System.out.println("类方法输出名字:"+this.name);
}
}
public class ThisTest {
public static void main(String[] args) {
User use1=new User();
use1.printName(); //引用类方法
System.out.println("user1为:"+use1);
use1.setName("ddd");
use1.printName(); //引用类方法
System.out.println("user1的名字为:"+use1.getName());
}
}
mypro01.User@1db9742
null
类方法输出名字:null
user1为:mypro01.User@1db9742
类方法输出名字:ddd
user1的名字为:ddd
理解this关键字
使用this关键字
- 解决成员变量和参数(局部变量)之间的二义性必须使用。
- 同类中实例方法间互相调用(此时可以省略this,但不建议省略)。
- 将this作为参数传递给类中另一个方法。
- 将this作为方法的返回值(链式方法编程)。
- 构造器重载的互调,this([参数])必须写在构造方法第一行。
- static不能和this一起使用:
当字节码被加载进JVM,static成员已经存在了,但此时对象还没有被创建,没有对象就没有this。
构造器重载的互调
当多个构造器或方法重载时,一般的,我们是少参数的调用多参数的。
参数越多,该方法考虑的未知因素也越多,也就是说功能更强大。