1. static inner class 等同于顶级类。可以不需要创建Outer class就直接使用。
    所以 b 显然是错的。
2.  c 是对的,既然是static嘛,当然没有对enclosing class的引用 
3.  d错了。静态类只能存取静态成员
4.  正确。

解决方案 »

  1.   

    你认为选
    c  d
    e错在那?
    请问谁有详细讲解内部类的资料,拿出来共享一下,十分感谢!!!
      

  2.   

    java编程思想里面有这方面的教程
    很详细的
      

  3.   

    2. static的含义
    理解了this关键字后,我们可更完整地理解static(静态)方法的含义。它意味着一个特定的方法没有this。我们不可从一个static方法内部发出对非static方法的调用(注释②),尽管反过来说是可以的。而且在没有任何对象的前提下,我们可针对类本身发出对一个static方法的调用。事实上,那正是static方法最基本的意义。它就好象我们创建一个全局函数的等价物(在C语言中)。除了全局函数不允许在Java中使用以外,若将一个static方法置入一个类的内部,它就可以访问其他static方法以及static字段。②:有可能发出这类调用的一种情况是我们将一个对象句柄传到static方法内部。随后,通过句柄(此时实际是this),我们可调用非static方法,并访问非static字段。但一般地,如果真的想要这样做,只要制作一个普通的、非static方法即可。有些人抱怨static方法并不是“面向对象”的,因为它们具有全局函数的某些特点;利用static方法,我们不必向对象发送一条消息,因为不存在this。这可能是一个清楚的自变量,若您发现自己使用了大量静态方法,就应重新思考自己的策略。然而,static的概念是非常实用的,许多时候都需要用到它。所以至于它们是否真的“面向对象”,应该留给理论家去讨论。事实上,即使Smalltalk在自己的“类方法”里也有类似于static的东西。
    <拷贝>
      

  4.   

    ce!
    静态类只是依附于encloing class,和它毫无关系,当然所有encloing class或outer class的
    非成员变量都不能用,否则创建若干其它类的实例时,静态类取哪一个呢?(c)
    既然静态,无须encloing的实例就可创建。(e);
      

  5.   

    ce!
    静态类只是依附于encloing class,和它毫无关系,当然所有encloing class或outer class的
    非(静态)成员变量都不能用,否则创建若干其它类的实例时,静态类取哪一个呢?(c)
    既然静态,无须encloing的实例就可创建。(e);上面漏了一个静态两字,见笑!
      

  6.   

    to chl326:
      我没说e错啊,我选的是c e