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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘海陆 中级黑马   /  2013-3-27 21:32  /  2118 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘海陆 于 2013-3-28 05:15 编辑

静态内部类 里面的成员(包括静态的和非静态的)都是先加载进内存吗?
如果非静态的函数不是先加载进内存的话,应该能访问外部类的非静态成员。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1 等待回答哦~~

查看全部评分

4 个回复

倒序浏览
希望这个图对楼主有帮助

静态内存图.JPG (58.17 KB, 下载次数: 36)

静态内存图.JPG
回复 使用道具 举报
本帖最后由 米腾达 于 2013-3-27 23:00 编辑

1、静态内部类也是一个类,它里面的成员加载顺序与外部类一样,静态的成员在程序运行时加载进内存,非静态的成员在创建对象时在内存中产生。
2、内部类之所以能够访问外部类,是因为内部类中持有一个对外部类对象的引用,即 外部类.this  。而静态内部类要按照static修饰的原理,this在其内部是无指向的,所以也就访问不到外部类对象中的非静态成员了。
回复 使用道具 举报
米腾达 发表于 2013-3-27 22:58
1、静态内部类也是一个类,它里面的成员加载顺序与外部类一样,静态的成员在程序运行时加载进内存,非静态 ...

嗯嗯,明白了,谢谢哈
回复 使用道具 举报
刘海陆 发表于 2013-3-28 05:15
嗯嗯,明白了,谢谢哈

为嘛不加分啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马