作者: 李文龙 时间: 2012-6-21 02:06
super是子类调用父类的同名方法或变量,同名方法即是子类重写了父类的方法,同名变量是子类中定义的成员变量与父类中的成员变量名相同,子类就隐藏了继承的成员变量,需要通过super方法才能调用。
this指针是表示调用该方法的当前对象,比如说有个函数为 int f(int a ,int b),那么 arr1.f(a,b)的话this指针就指向arr1所对应的参数,brr1.f(a,b)的话tihs指针就指向brr1所对应才参数,还有关于this指针的一点重要作用,也就是楼主你迷糊的地方,是参数名与变量名相同的情况下需要this指针加以区别。
class E
{
int a;
E(int a)
{
this.a=a;
}
}
这个里面 参数列表中 a 与类的成员变量同名,需要this 指针加以区别,如果不同名你完全可以这样写
class E
{
int a;
E(int b)
{
a=b;
}
}
不知楼主看懂没有,因为嘛,不同名的时候,你知道是要把b的值赋给a,同名的时候,计算机可就分不清哪个a是哪个a了,所以你要用this指针进行指向。作者: 陆强强 时间: 2012-6-21 08:13 本帖最后由 陆强强 于 2012-6-21 08:18 编辑
class E
{
int a;
E(int a)
{
this.a=a;
}
}
用a=a;也是可以的。a=a不写THIS,new E()直接调用类E中的a,所以a=0.
写this的时候是把传入的A赋值给对象的A,a=2.作者: 庄星睿 时间: 2012-6-21 08:34