button_userAdd.addActionListener(new java.awt.event.ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        button_userAdd_actionPerformed(e);
      }
    });
你要是熟悉java,这种匿名类不会造成可读性变差,而且看起来很明了,自己做个frame的应用程序,加几个按钮,做点响应,很不错的。

解决方案 »

  1.   

    我用的是Thinking in java 2,
    作者对内隐类很是推崇.感觉比接口好用~
    可是我在论坛很少看到这方面的贴子
    我想知道高手们用的多吗?讨论一下~~~
      

  2.   

    JAVA里没有多重继承呀!
    你继承的是接口到是可以
    内部类可以限制其他类的访问
      

  3.   

    class A{
     protected void paint(){
           System.out.println("A.paint()");
          }
     }class B{
     protected void draw(){
            System.out.println("B.draw()");
          }
    }public class C extends A{
      private class D extends B{
           void f(){                  //实现了既draw又 paintclass
                   draw();
                   paint();
                 }
      }  public void  print() {
          new D().f();
      }  public B getB(){ 
           return new D();
      }  public  void takeA(A a){}
      public  void takeB(B b){}   public static void main(String[] args){
         C c=new C();
         c.print();
         takeA(c);                
         takeB(c.getB()); //"另类"多态
     }
    }
      

  4.   

    我要用到一个基于文本的conctrol framework库,linux下的.
    要改些地方~~,看到inner就头晕~~
      

  5.   

    .匿名内隐使程序可读性变差? 可不是你说的那样哦2.除多重继承的好处外,还有别的吗?
    没有多重继承,可以实现多个interface
    个人建议使用interface,而少使用抽象类
      

  6.   

    谢谢各位参与~1.我是菜鸟,看到匿名内隐真是不习惯~!2.我说的多重继承,并不是指完全的,仅指可实现多重继承的类似功能.
       因为inner 和outer类之间的成员和属性可以相互调用(包括private)3.内部类可以限制其他类的访问
     
    4. 事件处理中,用inner类在具体控件中实现同一事件接口的不同实现版本5....6....
      

  7.   

    补充>>>>多重继承如果我要用到几个类(而不是接口)的protected方法,就可以用内隐
    这样不用另外的类来提供转接口,从而保证实现过程隐蔽
      

  8.   

    首先内隐类不是内部类.
     我认为使用内隐类和内部类如果有什么功能重叠的话就是响应各种事件.
     可读性差?我不觉得 我一直用内隐类 因为同样响应一个事件 使用内隐类 大大的方便... 给出一个我写的内隐类应用实例:
     m1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    go1();
    }
    });//使用隐名类加入监听信息
      

  9.   

    button_userAdd.addActionListener(new java.awt.event.ActionListener()
        {
          public void actionPerformed(ActionEvent e)
          {
            button_userAdd_actionPerformed(e);
          }
        });
    等效于,先创建一个内部类,再将此类的实例加为button的观察者:
    class T implements java.awt.event.ActionListener{
      public void actionPerformed(ActionEvent e)
          {
            button_userAdd_actionPerformed(e);
          }
    }增加观察者:
    button_userAdd.addActionListener(new T());只是这个T对编程没有命名的必要,也没有谁会访问它,所以一般直接写内容没有命名,避免一个类里到处都是内部类的定义,它就是内部类的另一种写法,跟多重继承没有什么关系
      

  10.   

    怎么会丢掉这么重要的实现?去看看java.util.Collections的代码,同步的聚集是如何实现的?用的就是内置类.另外在Collection Framework中,迭代也是用内置类.这是java中提供wide和narrow接口的标准做法.
      

  11.   

    内隐类不是内部类,内隐类给人的感觉像一个临时的类,有作为临时变量的味道,但又有一种接口的味道,在jbuilder中注册事件收听者时常常遇到...我觉得这样做更加简洁,可读性更好,因为它省去了中间继承一个事件收听类,然后在控件上绑定事件收听者这一系列过程,代码更少,效率更高...
      

  12.   

    sun上有nested 和 inner有谁说一下?