A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 苏-L-w 中级黑马   /  2014-6-25 18:32  /  2288 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

13 个回复

倒序浏览
不错。。。
回复 使用道具 举报
LZ归纳得这么好,黑马一位新的大神又诞生了,先提前庆祝一下:lol:lol:lol
回复 使用道具 举报

    谢谢支持!
回复 使用道具 举报
我来补充一条,在内部类中要访问外部的成员变量,就得用
className.this.field
这种写法。
回复 使用道具 举报
iWilliam 发表于 2014-6-26 09:15
我来补充一条,在内部类中要访问外部的成员变量,就得用
className.this.field
这种写法。 ...

    谢谢分享!
回复 使用道具 举报
好吧,支持一下哈
回复 使用道具 举报
支持你啊
回复 使用道具 举报
不懂哎......
回复 使用道具 举报
用自己的语言表达的  赞一个
回复 使用道具 举报
卞新浩 发表于 2014-6-27 21:46
用自己的语言表达的  赞一个

互相分享!
回复 使用道具 举报
学习了
回复 使用道具 举报
赞                                                           .
回复 使用道具 举报
不错   分析的很详细了 谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马