黑马程序员技术交流社区

标题: java中super的两种用法 [打印本页]

作者: 苏-L-w    时间: 2014-6-25 18:32
标题: java中super的两种用法
    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量。但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的。
好了,现在开始讨论this&super这两个关键字的意义和用法。
在Java中,this通常指当前对象,super则指父类的。当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造函数,这些马上就要讨论。如果你想引用父类的某种东西,则非super莫属。由于this与super有如此相似的一些特性和与生俱来的某种关系,所以我们在这一块儿来讨论,希望能帮助你区分和掌握它们两个。
在一般方法中
最普遍的情况就是,在你的方法中的某个形参名与当前对象的某个成员有相同的名字,这时为了不至于混淆,你便需要明确使用this关键字来指明你要使用某个成员,使用方法是“this.成员名”,而不带this的那个便是形参。另外,还可以用“this.方法名”来引用当前对象的某个方法,但这时this就不是必须的了,你可以直接用方法名来访问那个方法,编译器会知道你要调用的是那一个。

作者: 龙泉长空    时间: 2014-6-25 18:56
不错。。。
作者: 哇塞哇    时间: 2014-6-25 19:02
LZ归纳得这么好,黑马一位新的大神又诞生了,先提前庆祝一下:lol:lol:lol
作者: 苏-L-w    时间: 2014-6-25 22:17
龙泉长空 发表于 2014-6-25 18:56
不错。。。

    谢谢支持!
作者: iWilliam    时间: 2014-6-26 09:15
我来补充一条,在内部类中要访问外部的成员变量,就得用
className.this.field
这种写法。
作者: 苏-L-w    时间: 2014-6-26 21:02
iWilliam 发表于 2014-6-26 09:15
我来补充一条,在内部类中要访问外部的成员变量,就得用
className.this.field
这种写法。 ...

    谢谢分享!
作者: 李亚西    时间: 2014-6-27 04:59
好吧,支持一下哈
作者: java_668    时间: 2014-6-27 09:20
支持你啊
作者: Solomon    时间: 2014-6-27 12:33
不懂哎......
作者: 卞新浩    时间: 2014-6-27 21:46
用自己的语言表达的  赞一个
作者: 苏-L-w    时间: 2014-6-27 21:52
卞新浩 发表于 2014-6-27 21:46
用自己的语言表达的  赞一个

互相分享!
作者: 马到成功2014    时间: 2014-6-27 22:59
学习了
作者: huiyifan    时间: 2015-10-2 10:06
赞                                                           .
作者: 0814java1    时间: 2015-10-2 10:55
不错   分析的很详细了 谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2