嵌套内部类ABar和BBar是否可以访问主类的变量?例如:
public class Foo {
public ABar abar = new ABar();
public BBar bbar = new BBar();
public int someCounter = 0;
public class ABar {
public int i = 0;
public void someMethod(){
i++;
someCounter++;
}
}
public class BBar {
public void anotherMethod(){
bbar.someMethod();
someCounter++;
}
}
}
// then called using: //
Foo myFoo = new Foo();
myFoo.bbar.anotherMethod();
Edit
如果我先尝试一下,我输入的代码似乎会起作用;试图获得帮助但又不太具体。我实际上遇到问题的代码
由于错误“无法对非静态字段阶段进行静态引用”而失败
public class Engine {
public Stage stage = new Stage();
// ...
public class Renderer implements GLSurfaceView.Renderer {
// ...
@Override
public void onDrawFrame(GL10 gl) {
stage.alpha++;
}
}
public class Stage extends MovieClip {
public float alpha = 0f;
}
在你的代码中,是的,这是可能的。
非静态嵌套类(内部类)可以访问其他成员
封闭类的属性,即使它们被声明为私有。静止的
嵌套类无法访问封闭类的其他成员
班级。
See: 嵌套类 http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)