什么是静态内部类?跟普通内部类有什么区别?
class A{
static class B{
}
} 作者: 咖啡苏克 时间: 2014-7-10 09:59
静态类作为类的静态成员存在于某个类中,需在类的定义中加入关键字static。
class Outer
{
Private static int x = 3;
static class Inner
{
void method()
{
System.out.println("method"+x);
}
}
}
class InnerClassDemo5
{
public static void main(String[] args)
{
Outer.Inner in = new Outer.Inner(); // Outer.Inner()为直接通过外部类类名调用的内部类
in.method();
}
}
在类Outer中定义了静态类Inner后,可将静态类Inner看成类Outer的static成员。当内部类被static修饰后,只能直接访问外部类中的static成员,出现了访问局限。因为内部类被静态化,Static成员可以在不创建外部类Outer对象的情况下,直接new 出内部类Inner的对象。
注意:当内部类中定义了静态成员,该内部类必须是static的; 当外部类中的静态方法访问内部类时,内部类也必须是static的。 作者: alexsoon 时间: 2014-7-10 10:36
静态内部类的成员都需要static修饰吧?作者: EarlyHeart 时间: 2014-7-11 12:02