this:指当前对象,谁调用这个方法 方法中的this 就指像谁。
所有成员方法内部在访问成员变量的时候都隐含了一个this
this访问的肯定是本类的成员(成员变量 成员方法)
this关键字的作用:
1)实现不同对象访问同一方法时,可以访问自己对象的属性。
2)当成员变量和局部变量名称相同时,通过this来访问成员变量
3)在构造方法中使用this(有参数/无参数) 可以访问本类中其他的构造方法 (this必须写在构造方法中的第一行)
举例:
public class Farmar {
void warm(Snack snack){
System.out.println("蛇攻击了农夫");
snack.attack(this);//谁调用warm方法 this指向谁
}
void die(){
System.out.println("nongsu死了");
}
}
public class Snack {
void attack(Farmar farmar){
farmar.die();
}
}
测试类:
public static void main(String[] args) {
// TODO Auto-generated method stub
Farmar farmar = new Farmar();
Snack snack = new Snack();
farmar.warm(snack);
}
Farmer类中的this并不是指向snack,而是 谁调用this所在的成员方法 就值向谁 而Snack.attack(this) this不值向snack,而是看main方法中farmer调用的warm(snack)方法