内部类!特点:静态内部类被编译到一个单独的 .class 文件中,这个文件独立于它的外部类。静态内部类根据定义可以访问外部类的保护域和私有域。
小心对待!一般测试时使用。

解决方案 »

  1.   

    失望中,
    CSDN没有高手吗?
      

  2.   

    静态类和非静态类?参看scjp教程,其中有inner class 的区别和联系.对于有static 的 inner class ,可以成为顶层 class 被外部访问,如:Graphics2D.Double 这样的类.非靜态的的如:
    xxx.addMouseAdapter(new MouseAdapter(){
      public void mouseClick(MouseEvent e){
         ;//这里实现.
      }
    })主要是在作用范围和变量访问能力方面有区别.
      

  3.   

    静态类中所有的变量和方法在内存中只会有一个实例,不管你的类有多少实例。如果是内部静态类的话,静态的理由就是你的内部类可以不需要外部类的实例就可以创建。就像类中的静态方法一样,如你可以new Rectangle2D.Double(..);
    Double为Rectangle2D的内部类。而非静态,需要这样创建rect.new Double(...);//rect为Rectangle2D的实例
    就是先要有一个外部类的实例,才能创建内部类。典型的设计就是外部类是一个抽象父类,内部类为静态子类,只有方法,没有变量(变量都在父类中定义,否则所有的内部类实例共同拥有一个变量)。就像java.awt.geom.Rectangle2D.java
      

  4.   

    问:
    如果把内部类提出,另写一个.java程序,外部类也另写一个.java
    这样和写在一起的有什么区别?
      

  5.   

    建议看<JAVA编程思想>第7章第6节。
    对这个问题讲得很详细。