在使用eclipse进行编译时,编译器一直提示错误,但是编译方法是正确的,为啥编译器会提示错误?求大神解答
静态内部类必须通过new 外部类().成员的方式访问非静态成员;
比如你的12行代码要这样写:syso("访问外部类中的成员b:" + new SOuter().b );
你外部的b不是静态变量
你对成员变量b用了private修饰,导致该变量不能被任何实例对象引用,针对你的问题,有两种改法:
将b用public static修饰,变成静态成员变量,这时就可以用SOuter2.b来引用它了
将SOuter2.b改为new SOuter2().b,这样做的实质是通过new SOuter2()产生了一个SOuter2类的匿名对象,然后再通过这个匿名对象去引用成员变量b,为了让b能够被对象引用,你还需要将b改成public修饰