当前位置: 技术问答>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可以在函数参数的位置定义一个类吗?
请看下面这段代码:
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页的。
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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。