黑马程序员技术交流社区

标题: 关于内部类加静态的问题?? [打印本页]

作者: 悟佛修道    时间: 2013-5-18 23:37
标题: 关于内部类加静态的问题??
本帖最后由 悟佛修道 于 2013-5-21 11:28 编辑

如图那里加上静态和不加静态有什么不同?为什么一定要加静态?加静态的原理是什么??

QQ截图20130518233326.png (79.71 KB, 下载次数: 0)

QQ截图20130518233326.png

作者: 萌小子    时间: 2013-5-18 23:50
本帖最后由 王盟盟 于 2013-5-18 23:56 编辑

内部类并不是必须加static的。但是如果在一个静态的方法中访问外部属性和内部类,那么这些属性和内部类就必须也是加static。而在非static方法中是可以访问static的属性和内部类的。
作者: 悟佛修道    时间: 2013-5-21 08:35
王盟盟 发表于 2013-5-18 23:50
内部类并不是必须加static的。但是如果在一个静态的方法中访问外部属性和内部类,那么这些属性和内部类就必 ...

意思是下面那个静态的 function 方法new了一个这个内部类的对象,相当于就是在访问这个内部类了,所以要加静态?
作者: 刘勇强    时间: 2013-5-21 09:39
本帖最后由 刘勇强 于 2013-5-21 09:51 编辑
悟佛修道 发表于 2013-5-21 08:35
意思是下面那个静态的 function 方法new了一个这个内部类的对象,相当于就是在访问这个内部类了,所以要 ...

静态成员是随着类的加载而加载的,跟成员是否创建没关系  

Test.function().method();
method()方法也需要声明为静态的  原因就是你和楼上说的,外部静态方法访问内部类,内部类需要定义为静态,当然内部类的成员也需要被定义为静态




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