当前位置:  技术问答>java相关

一个基础的问题

    来源: 互联网  发布时间:2017-03-22

    本文导语:  偶以前是用C++的,刚接触java,有些东东不明白,向大家请教; 请看下面这段代码: jMenuFileExit.addActionListener( //只是一个简单的增加动作监听的函数 new ActionListener() //???这是什么意思:生成对象?那后面的{}...

偶以前是用C++的,刚接触java,有些东东不明白,向大家请教;
请看下面这段代码:
jMenuFileExit.addActionListener( //只是一个简单的增加动作监听的函数
new ActionListener() //???这是什么意思:生成对象?那后面的{}作何解释;函数定义?那前面的new作何解释;
{
public void actionPerformed(ActionEvent e)
{
jMenuFileExit_actionPerformed(e);
}
}
);
在上面的这段代码中,addActionListener函数的参数是一个对象么?难道java可以在函数参数的位置定义一个类吗?

|
java的内部类,挺有意思的,你最好看看书。是可以在方法中定义一个类,这叫匿名内部类。thinking in java中有详细讲解

|
比如说有这么一句:
return new MyObject(){
    private int i;
    public int MyMethod(){;}
};

这等于以下的两句:
1、class MySubObject extends MyObject(){
    private int i;
    public int MyMethod(){;}
}
2、return new MySubObject();

我是借花献佛,具体的你去看看书吧!
例子是上第165页的。

|
上次写的不正确,以上代码是关于匿名内部类的,具体请看java核心技术卷1第227页

|
其实两种方法都是一回事,如果你的监听对象只有用到一处,不需要再去新建一个类,然后实例化,使用这种匿名内部类直接生成一个对象是一个比较好的方法;

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3