嵌套的内部类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();
修改
如果我先试过它,似乎我输入的代码会起作用;我试图在没有太具体的情况下获得帮助。代码我实际上遇到了麻烦
由于错误'无法对非静态字段进行静态引用'
而失败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;
}
答案 0 :(得分:18)
答案 1 :(得分:0)
如果您的内部类扩展了外部类,那么它将可以访问外部类public和protected成员。我只是厌倦了它并且它起作用了。该构造有点奇怪,因为它暗示了类定义中的一种无限循环,但似乎可以完成这项工作。