黑马程序员技术交流社区
标题:
关于this关键字和super关键字的问题
[打印本页]
作者:
王小刚
时间:
2012-3-17 11:44
标题:
关于this关键字和super关键字的问题
this. 与 this() , super. 与 super() 到底有什么区别,即什么时候用 this. 什么时候用this(), 什么时候用super. 什么时候用super() 求高手指点下,我是真搞不清...
作者:
刘雷冲
时间:
2012-3-17 11:56
this:当前对象引用
1、代表使用该方法的对象的引用
2、必须指出当前使用方法的对象是谁时使用this
3、可以处理方法中使用成员变量和参数重命名的情况
作者:
黑马肖凯骏
时间:
2012-3-17 12:00
this. 调用本类的成员参数
this() 调用本类的构造方法
super. 调用父类的成员参数
super() 调用父类的构造方法
到底有什么区别,区别如上所示
即什么时候用 this. 什么时候用this(), 什么时候用super. 什么时候用super()
拿自己的东西用this
拿父亲的东西用super
作者:
黄奇耀
时间:
2012-3-17 12:01
父类有100块,子类也有100块。子类想用自己的钱就用this,要用父类的钱就用super。
作者:
彭盼
时间:
2012-3-17 12:11
本帖最后由 彭盼 于 2012-3-17 16:30 编辑
this() 用于调用本类相应的构造函数,哪个对象调用函数中包含的this,那么this就指相应的那个对象。
super() 用于调用本类所继承的父类相应的构造函数
this. 后跟方法或属性 用这个表示函数或变量引用本类的方法或属性
super. 相应的是引用父类的方法或属性,若用super去执行改变变量的操作,而父类也存在此变量,则父类中此变量也会被改变
作者:
朱亚安
时间:
2012-3-17 12:17
this:在引用自身的成员变量的时候用比如说:this.成员变量;
this():这个是在自身构造方法中,进行重载的时候用的。可以调用已写的构造方法;
super:在子类中调用父类的成员变量可以使用这个。
super();在子类构造方法中,必须调用父类的构造方法,如果调用父类的空构造,可以使用super()[必须在第一行使用],如果调用父类的别的构造方法,那么使用super(参数列表【应该是父类的成员变量】);
作者:
王小刚
时间:
2012-3-17 12:18
是不是就是 this()和supet()只能用于调用子父类的构造函数?
作者:
a504079589
时间:
2012-3-17 13:24
this. 是父类调用子类的成员 this() 是父类调用子类的构造函数;
super. 是子类调用父类的成员, super()是子类调用父类的构造函数;
作者:
李创
时间:
2012-3-17 13:37
this
第一、通过this调用另一个构造方法,用发是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。
第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this,用了也不为错,呵呵。
第三、在函数中,需要引用该函所属类的当前对象时候,直接用this
super的用法:
第一、在子类构造方法中要调用父类的构造方法,用“super(参数列表)”的方式调用,参数不是必须的。同时还要注意的一点是:“super(参数列表)”这条语句只能用在子类构造方法体中的第一行。
第二、当子类方法中的局部变量或者子类的成员变量与父类成员变量同名时,也就是子类局部变量覆盖父类成员变量时,用“super.成员变量名”来引用父类成员变量。当然,如果父类的成员变量没有被覆盖,也可以用“super.成员变量名”来引用父类成员变量,不过这是不必要的。
第三、当子类的成员方法覆盖了父类的成员方法时,也就是子类和父类有完全相同的方法定义(但方法体可以不同),此时,用“super.方法名(参数列表)”的方式访问父类的方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2