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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王骥 中级黑马   /  2015-6-16 23:21  /  1042 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

随着类加载而加载不就是静态么,为什么不能修饰类?

9 个回复

倒序浏览
你的问题好刻薄
回复 使用道具 举报
static 可以修饰类的哦
回复 使用道具 举报
被静态修饰的类不方便继承哈
回复 使用道具 举报
可以内部类。
回复 使用道具 举报
骥哥问题问的好深入!!!我竟无言以对
回复 使用道具 举报
就是!可以修饰内部类
回复 使用道具 举报
sanmy_lin 来自手机 中级黑马 2015-6-17 00:09:42
8#
看看,谁说不可以?
回复 使用道具 举报
我之前回答过一次。直接粘过来了
讲一下个人理解吧。static修饰的东西被我们成为类成员,它会随着类的加载而加载,比如静态代码块,静态成员,静态方法(这里只是加载,并没有调用)等等,可以假象一下,如果把一个Class文件中的外部类设为static,那目的何在呢?难道让这个类随着应用的启动而加载吗?如果我在这次使用过程中根本没有使用过这个类,那么是不是就会浪费内存。这样来说设计不合理,总而言之,设计不合理的地方,Java是不会让它存在的。
而为什么内部类可以使用static修饰呢,因为内部类算是类的成员了,如果我们没有使用静态来修饰,那么我们在创建内部类的时候就需要先有一个外部类的对象,如果我们一直在使用内部类,那么内存中就会一直存在外部类的引用,而我们有时候只需要使用内部类,不需要外部类,那么还是会浪费内存,甚至会造成内存溢出。使用static修饰内部类之后,内部类在创建对象时就不需要有外部类对象的引用了。
最终结论就是:static可以用来修饰内部类,但是不可以用来修饰外部类

回复 使用道具 举报
当内部类定义在成员位置时,可以被静态修饰
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马