用法分析
1.获得域
class A{
int a = 1 ;
public void test(){
System.out.println(this.a);
}
}
这里的this是指代该对像A,所以不可以在static方法中使用this。
同时可以直接返回 return this,在函数中返回该对像。
2.作为构造函数
必须放在函数的首行
class B{
public B(){
this(1);
}
public B(int data){
System.out.println(data);
}
}
3.指向子类的对象
父类
public abstract class Parent {
int num = 1;
public void test(){
System.out.println(this.show());
}
protected abstract String show();
}
子类
public class Child extends Parent {
int num = 2;
public Child(){
test();
}
public static void main(String[] args)
{
Child child = new Child();
}
@Override
protected String show() {
return "xxxxx";
}
}
最终打印xxxxx
this代表当前对象,但是指向调用者对象。因为new Child()复写了父类的函数,所以会调用子类的函数。