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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 孙建志 于 2015-11-8 22:39 编辑

class Outer {
        int a=10;
        class Inner{
                static int b=20;        //此行会报错
                public void show(){
                System.out.println(a);
                System.out.println(b);
                }
        }
}

OX$U]LX2237[4LE_J(G1}CB.png (11.93 KB, 下载次数: 246)

OX$U]LX2237[4LE_J(G1}CB.png

5 个回复

倒序浏览
路过!!!!!!!!!
回复 使用道具 举报
因为,首先非静态内部类,属于对象,不属于类,会在对象创建的时候生成,静态成员会在类加载的时候被被初始化,而非静态内部类会在对象创建后才加载进内存,不太符合静态成员的定义
回复 使用道具 举报
估计是跟类加载有关,外部类先加载,内部类后加载,而且依赖于外部类。
回复 使用道具 举报
nice非飞 发表于 2015-11-8 22:46
估计是跟类加载有关,外部类先加载,内部类后加载,而且依赖于外部类。

那对内部类的静态成员有啥关系。
回复 使用道具 举报
个人认为应该是在内存中的生成顺序有关系    静态对象在类对象之前就生成加载  这就与你定义的不相符了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马