繁体   English   中英

内部类中的静态字段

[英]Static fields in 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对象的相同实例,还是每个实例都有不同的静态字段?

我认为内部类不能具有静态成员,因为它需要外部类的实例。

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

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

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

您的问题不正确。 只是问不存在的东西毫无意义。 在这种情况下,唯一的可能性是使内部类static 然后,对于外部类的每个实例,您都有一个内部类的静态实例。 结果,此内部类的一个静态变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM