关于this指针的一些问题

//父类
public class BaseClass {
private String a="1";

public BaseClass(String a){
    System.out.println(this.a);    //这两个this分别指向哪个对象
    this.show();
}

public void show(){
    System.out.println("1");
}

}

//子类
public class SubClass extends BaseClass {

public SubClass(String a) {
    super(a);
}

public void show(){
    System.out.println("2");
}

}

//测试
public class Test {

public static void main(String[] args) {
    BaseClass b=new SubClass("a");
    b.show();
}

}

问题:baseClass中的两个this分别指向哪个对象

this就是代表当前类本身,所以this.a就是String变量("1"),this.show()就是当前类的show方法。
具体跟super有什么异同,可以参考:http://blog.csdn.net/anmei2010/article/details/4093118

那两个this指向的是baseClass对象本身(this其实就是存放的对象本身的地址),super是父类的指针。

根据BaseClass b=new SubClass("a");两个this都是指向 new SubClass的内存地址空间

this永远是指向自己