内部匿名类是不是必须在接口上使用? 内部匿名类是不是必须在接口上使用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用,任何一个地方都能创建InnerClass 比如你的这个类B只有类A在调用,那么类B就可以写成内部类了。 >>内部 匿名类 是不是必须在接口上使用?明白你的意思了,不是的比如new Object(){ public int hashCode(){return 1;}}; 本来我不想说了,因为许多人都知道,不清楚可以看一下Sun的文档,我也不是特别清楚匿名内部类,容易出错,比如局部变量必须是final 类型,一般不要轻易使用,常见的使用方式是在实现一个接口,或者某个适配器如textField.addActionListener(new ActionListener(){//......}); 多看文章,问问Sun 为什么想到了 内部类 ,然后你就知道什么时候用比较合适。 非也!匿名类是对内部类的改进,允许我们把类的定义与类的实例的分配组合在一起。无须象其他任何嵌套类那样进行声明,可以直接转到“new SomeClass()”实例化对象的位置,并把哪里的整个类放到花括号中。比如:public class out{ ... public static main(String args[]){ someone.someone(new Some(){...});//...即为内部类内容 }}out.java编译后生成out.class和out$1.class两个类文件,其中out$1.class就是内部类的文件。当然这个说明上述代码中存在一个Some的接口或者是类。在事件处理只有几行代码的地方,仅能使用内部类或者匿名类,若是事件处理代码比较多,建议采用顶级类比较好! 我觉得匿名内部类的主要作用还是在实现事件处理机制上。为了实现一个只用一次的Listener的实例,其他地方还是少用为妙 关于poi的一个疑惑 java在linux系统下读取文件与系统环境有关系吗??? JAVA生成的.EXE文件怎么样才能在没有JAVA虚拟机的系统运行? 求助:java中哪个类能获得当前计算机名 Java中Applet程序调试遇到问题了...... 请大家帮助,这有可能吗? 转换date数据类型的问题~解决立即结贴 jbuilder生成可执行文件的问题 如何在服务器端实现多用户访问数据库时保持数据库的一致性 关于java的rmi程序 难道Java编程思想错了? 其实,要是提前一个世纪出身,发明选择排序法的人是我!虽然那时还没有电脑,但是也有了算盘。
比如
new Object(){
public int hashCode(){return 1;}
};
我也不是特别清楚匿名内部类,容易出错,比如局部变量必须是final 类型,一般不要轻易使用,常见的使用方式是在实现一个接口,或者某个适配器
如textField.addActionListener(new ActionListener()
{
//......
}
);
匿名类是对内部类的改进,允许我们把类的定义与类的实例的分配组合在一起。
无须象其他任何嵌套类那样进行声明,可以直接转到“new SomeClass()”实例化对象的位置,并把哪里的整个类放到花括号中。比如:
public class out{
...
public static main(String args[]){
someone.someone(new Some(){...});//...即为内部类内容
}
}
out.java编译后生成out.class和out$1.class两个类文件,其中out$1.class就是内部类的文件。
当然这个说明上述代码中存在一个Some的接口或者是类。
在事件处理只有几行代码的地方,仅能使用内部类或者匿名类,若是事件处理代码比较多,建议采用顶级类比较好!
为了实现一个只用一次的Listener的实例,其他地方还是少用为妙