内部类中的静态字段

时间:2013-03-16 10:46:29

标签: java static inner-classes

如果我有类似的类结构

public class Foo{
    //declaring fields and methods


    Foo(int k){
        Bar.a = k;
    }
    public class Bar{
        public final static int a;
    }
}

如果我创建了很多Foo实例,那么Bar类中的静态字段是如何起作用的?我的意思是,它是所有Foo对象的相同实例,或者每个实例都有不同的静态字段?

3 个答案:

答案 0 :(得分:4)

我认为Inner类不能有静态成员,因为它需要一个Outer类的实例。

答案 1 :(得分:1)

代码不会编译,编译器会发出

COMPILATION ERROR : 
-------------------------------------------------------------
... error: Illegal static declaration in inner class blah.Foo.Bar
1 error

您需要有一个static内部类才能编译此代码。

答案 2 :(得分:0)

你的问题不正确。只是它没有理由询问不存在的东西。在这种情况下,唯一的可能性是建立内部阶级static。然后,对于每个外部类的实例,您有一个内部类的静态实例。结果是这个内部类的一个静态变量。