button_userAdd.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
button_userAdd_actionPerformed(e);
}
});
你要是熟悉java,这种匿名类不会造成可读性变差,而且看起来很明了,自己做个frame的应用程序,加几个按钮,做点响应,很不错的。
{
public void actionPerformed(ActionEvent e)
{
button_userAdd_actionPerformed(e);
}
});
你要是熟悉java,这种匿名类不会造成可读性变差,而且看起来很明了,自己做个frame的应用程序,加几个按钮,做点响应,很不错的。
作者对内隐类很是推崇.感觉比接口好用~
可是我在论坛很少看到这方面的贴子
我想知道高手们用的多吗?讨论一下~~~
你继承的是接口到是可以
内部类可以限制其他类的访问
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()); //"另类"多态
}
}
要改些地方~~,看到inner就头晕~~
没有多重继承,可以实现多个interface
个人建议使用interface,而少使用抽象类
因为inner 和outer类之间的成员和属性可以相互调用(包括private)3.内部类可以限制其他类的访问
4. 事件处理中,用inner类在具体控件中实现同一事件接口的不同实现版本5....6....
这样不用另外的类来提供转接口,从而保证实现过程隐蔽
我认为使用内隐类和内部类如果有什么功能重叠的话就是响应各种事件.
可读性差?我不觉得 我一直用内隐类 因为同样响应一个事件 使用内隐类 大大的方便... 给出一个我写的内隐类应用实例:
m1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
go1();
}
});//使用隐名类加入监听信息
{
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对编程没有命名的必要,也没有谁会访问它,所以一般直接写内容没有命名,避免一个类里到处都是内部类的定义,它就是内部类的另一种写法,跟多重继承没有什么关系