this关键字是一个比较难理解的点,以下总结下this关键的功能与作用:
1.一个对象 调用其他方法,会产生一个指向该对象的一个引用,由编译器悄悄的作为调用方法的第一个参数传递给方法。在方法里面,通过this关键字引用该对象;
引用thinking in java 中的一个例子:
classBanana {
void f(int i){
。。。。。。
}
}
Banana a =newBanana();
Banana b=newBanana();
a.f(1);
b.f(1);
java如何区分是对象a调用还是对象b调用方法f(int i):
java虚拟机做了幕后操作:a.f(1)---->a.f(a,1);
b.f(1)----->b.f(b,1);在方法内部使用this代表当前对象a或者b;
2.第1点的一个很有用的地方是,在方法结束部分使用return this;返回调用方法的当前对象,从而实现对同一个对象的多次相同操作。
3.在构造器中调用同一个类中的其它构造器
该点与this关键字代表当前对象,没有一点关联。给this关键字加上参数列表,就明确的代表同一类中的其他某个确定的构造器;
注意点:在一个构造其中只能用this调用一个其他的构造器;用this调用其他构造器的代码只能放在构造器内代码的第一行;不能出现构造器的递归调用(死循环);
4.static方法中不能出现this关键字;
static关键字功能作用:
static修饰的属性或方法,代表有全局的意思,只要虚拟机加载完类,类中的static修饰的属性或方法就可以通过类名打点使用,如:Fruit.name
class Fruit{
public static String name = "Banana";
}