Java面试问题之二十五
请说明一下静态内部类有哪些特点?
答:静态内部类是成员内部类的一种,要使用static修饰。静态内部类具有以下几个特点:
(1)静态内部类的实例不会自动持有外部类的特定实例的引用,在创建内部类的实例时,不
创建外部类的实例。
(2)静态内部类可以直接访问外部类的静态成员,如果访问外部类的实例成员,就必须通过
外部类的实例去访问。例如在以下静态内部类B中,可以直接访问外部类A的静态变量
a2,但是不能直接访问实例变量a1。
class A {
private int a1;
private static int a2;
public static class B {
int b1=a1;
int b2=a2;
int b3=new A().a1;
}
}
(3)在静态内部类中可以定义静态成员和实例成员。
(4)客户类可以通过完整的类名直接访问静态内部类的静态成员。