第3点不敢苟同,如果重复出现当然另当别论。BTW:内部类经常在GUI方面中使用

解决方案 »

  1.   

    我建议斑竹去看看 TIJ 2nd ed.  charpter 7. 多行性。
      

  2.   

    Java已经有一个非常优秀的隐藏机制——只允许类成为“友好的”(只在一个包内可见),而不是把它创建成一个内部类。然而,当我们准备上溯造型到一个基础类(特别是到一个接口)的时候,内部类就开始发挥其关键作用(从用于实现的对象生成一个接口句柄具有与上溯造型至一个基础类相同的效果)。这是由于内部类随后可完全进入不可见或不可用状态——对任何人都将如此。所以我们可以非常方便地隐藏实施细节。我们得到的全部回报就是一个基础类或者接口的句柄,而且甚至有可能不知道准确的类型
      

  3.   

    例子
    jMenuFileExit.setText("Exit");
    jMenuFileExit.addActionListener(new Frame_jMenuFileExit_ActionAdapter(this));
    class Frame_jMenuFileExit_ActionAdapter implements ActionListener {
      Frame adaptee;  Frame_jMenuFileExit_ActionAdapter(Frame adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jMenuFileExit_actionPerformed(e);
      }
    }
    这个内部类 使结构好看了点好像 而且完全没有必要公开
      

  4.   

    语法上使用内部类可以完成普通类没法实现的两个功能:
    1. 提供 protected 和 private 访问控制。
    2. 提供继承多个类的可能性。Java 语法只允许继承一个类和多个接口,
    使用内部类可以模拟继承多个类。实践中因为内部类可以自由访问外部类的成员和方法,所以实现callback和一些设计模式
    非常方便。