黑马程序员技术交流社区

标题: this跟super为什么不能用在main方法中? [打印本页]

作者: 陈先森    时间: 2015-11-10 23:36
标题: this跟super为什么不能用在main方法中?
考试的时候碰见过错了,老师讲过也不太懂。大神讲解下啊
作者: chenhaiqian    时间: 2015-11-11 00:12
main方法需要被jvm直接调用,所以是静态方法,在静态方法中不能有this跟super,所以,main方法中不能有this跟super
作者: 邸永明    时间: 2015-11-11 14:26
main方法是静态方法,里边只能访问静态的方法,而this,super不是静态的
作者: 刘旭波    时间: 2015-11-11 21:38
2楼,3楼给力,学习了!
作者: 陈先森    时间: 2015-11-12 21:26
不是太懂
作者: ppaapc    时间: 2015-11-12 21:52
在方法中定义使用的this关键字,它的值是当前对象的引用.也就是说你只能用它来调用属于当前对象的方法或者使用this处理方法中成员变量和局部变量重名的情况.
而且,更为重要的是this和super都无法出现在static 修饰的方法中,static 修饰的方法是属于类的,该方法的调用者可能是一个类,而不是对象.如果使用的是类来调用而不是对象,则 this就无法指向合适的对象.所以static 修饰的方法中不能使用this.

作者: ljx550429    时间: 2015-11-12 22:24
多谢2楼三楼~~
作者: 雨魂    时间: 2015-11-12 22:33
二楼说得对,main方法是静态方法,是随着类加载而加载,而this与super是表示本类对象和父类对象,是随着对象加载而加载!java编译运行是先加载类,当new对象时才创建的对象!注意先后顺序
作者: tobno    时间: 2015-11-12 22:36
我是这么理解的:this 和super针对的是对象,static修饰的属于类成员而不是对象的了,所以不能用this,super
作者: xiao15779706    时间: 2015-11-13 09:24
感觉六楼说的很有道理~  结合2 3楼说的 我就明白了
作者: zypt0218    时间: 2015-11-13 10:33
有static就不能共存,,
作者: yqlbd    时间: 2015-11-13 10:43
static 哈哈
作者: 黑夜中那颗星    时间: 2015-11-13 11:39
this是本类对象的引用,super是父类对象的引用
静态优先于对象存在,所以不能用




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