我有三个问题。
1-如果非最终字段的值可以更改,如何在匿名类中使用它们?
class Foo{
private int i;
void bar(){
i = 10
Runnable runnable = new Runnable (){
public void run (){
System.out.println(i); //works fine
}//end method run
}//end Runnable
}//end method bar
}//end class Foo
2-为什么不能在方法内部声明静态嵌套类,因为内部类可以使用(本地类)的名称?
Class Foo {
void bar(){
class LocalClass{ //static nested classes are NOT allowed here
//define members
}//end class LocalClass
}//end method bar
}//end class Foo
3- 为什么内部类不能定义静态成员,除了静态最终字段?
class Foo {
class Bar{
static int x; //NOTallowed
static final int y; //allowed
static void doSomething(){} //NOT allowed
}//end class Bar
}//end class Foo
对于第三个问题,我知道内部类与其外部类的实例相关联,但这对我来说仍然没有令人信服的答案。new Foo().Bar.doSomething();
如果允许静态方法,我们可以使用类似的东西。