当前位置: 代码迷 >> Java相关 >> 匿名内部类具体是指什么??看书越看越糊涂!!
  详细解决方案

匿名内部类具体是指什么??看书越看越糊涂!!

热度:300   发布时间:2007-07-24 22:56:51.0
匿名内部类具体是指什么??看书越看越糊涂!!

如题,请教了??

搜索更多相关的解决方案: 部类  糊涂  匿名  看书  

----------------解决方案--------------------------------------------------------
匿名内部就是没有名字的类,表面是你是看不到构造函数的。。底曾其实是创建了实现了接口的一个子类。。
----------------解决方案--------------------------------------------------------
匿名内部类在GUI中用的比较多,
JButton button=new JButton("Test");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.out.println("test");
}
}
);
红色部分就是匿名内部类。它与下面这个是等价的。
button.addActionListener(new buttonListener());

private class buttonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.out.println("test");
}
}

[此贴子已经被作者于2007-7-24 23:26:41编辑过]


----------------解决方案--------------------------------------------------------

匿名类有三个特点.
一,它没有自己的名字,它继承了另外一个类,用父类的名字作为自己的名字.
二,它定义的时候就是创建的时候,创建的时候就是定义的时候,它们是一起的.
三,事实上,你就把它当成一个对象得了,只要对象能存在的地方它就能存在.
为了验证第三点,我特地编了个例子:
[CODE]class A
{ int a=1000;
public void call()
{int i=2000;
System.out.print("我是老爸我怕谁"+i);
}
}
class Main
{
public static void main(String[] args)
{
new A(){
public void call()
{
int i=3000;
System.out.printf("我是儿子,a=%d,i=%d",a,i);
}
}.call();
}
}[/CODE]输出:
我是儿子,a=1000,i=3000


----------------解决方案--------------------------------------------------------
4楼讲得比较好!收藏....
----------------解决方案--------------------------------------------------------
  相关解决方案