日期:2014-05-20  浏览次数:20807 次

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)客户类可以通过完整的类名直接访问静态内部类的静态成员。