黑马程序员技术交流社区
标题:
内部类小问
[打印本页]
作者:
葛晓东
时间:
2014-5-30 00:38
标题:
内部类小问
本帖最后由 葛晓东 于 2014-6-3 23:46 编辑
为什么非静态内部类的方法不能为静态?
作者:
Hi天天向上
时间:
2014-5-30 01:11
首先,这个是Java语言规范规定的内容。其次,你可以想象一下如何去指向这个静态成员。非静态内部类是通过外部类的this指针指向的。那么对于非静态内部类的动态成员,可以通过两个this指针确定位置。但是如果允许静态成员会出现什么情况?首先,静态成员是不能通过任何this指针的,但是为了确定这个成员,必须确定这个成员所在的类实例。但是这个实例必须通过一个this指针确定。这在语法以及处理上都会造成很大的麻烦。--网上搜的
我的想法:Java 中的静态成员可以不用类的对象实例就可以被访问,定义为类的内部类如果不是声明为静态的内部类,那么创建外部类的实例对象的时候就会一起初始化内部类,既然非静态的内部类无论如何都一定会被初始化,那么静态成员就没有任何意义了。希望有帮助
作者:
java木
时间:
2014-5-30 01:16
静态比非静态先存在。
作者:
葛晓东
时间:
2014-5-30 22:05
Hi天天向上 发表于 2014-5-30 01:11
首先,这个是Java语言规范规定的内容。其次,你可以想象一下如何去指向这个静态成员。非静态内部类是通过外 ...
有点感觉了 我再看看老师讲的
作者:
yang1352546
时间:
2014-5-30 22:12
非静态内部类的调用必须现有对象,才可以调用它中的变量和方法,但是静态成员变量的事在对象之前出现的,这里就出现了矛盾。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2