this关键字的用法可大致分为三种:
1、返回调用当前方法的对象的引用
public class Leaf{
private int i=0;
public Leaf increment(){
i++;
return this;
}
public void print(){
System.out.println("i="+i);
}
public static void main(String[] args){
Leaf x=new Leaf();
x.increment().increment().increment().print();
Leaf y=new Leaf();
y.increment().increment().print();
}
}
在上述代码中,this表示Leaf类的实例,当执行“x.increment()”时,this表示实例x的引用,当执行y.increment()时,表示实例y的引用。
2、在改造方法中调用当前类中的其他构造方法
public class Person{
private String name;
private int age;
private String sex;
public Person(){
sex="male";
System.out.println("sex: "+sex);
}
public Person(String _name){
this();
name=_name;
System.out.println("sex: "+sex+"name: "+name);
}
public Person(String _name,int _age){
this(_name);
age=_age;
System.out.println("sex: "+sex+"name: "+name+"age: "+age);
}
public static void main(String[]args){
Person p1=new Person();
Person p2=new Person("张三");
Person p3=new Person("(张三)",25);//带括号
}
}
3、当方法参数名和成员变量名相同时,用于区分参数名和成员变量名
public class PersonTest{
private String name;
private int age;
public PersonTest(String name){
this.getName(name);
System.out.println("名字为:"+name);
}
private void setName(String name){
this.name=name;
}
private String getName(String name){
return name;
}
public static void main(String[]args){
PersonTest p=new PersonTest("你好");
}
}