Java中怎样使用匿名内部类

Java中怎样使用匿名内部类,第1张

JAVA中匿名部类使用最常见,用起来最方便的地方是在进行GUI编写时,添加控件响应事件时。在为控件添加事件时使用内部匿名类是大家常用的方法,我这里举一个列子,相信你看过之后既能理解又会用了。 这是为一个按钮添加一个左键单击事件,点单击后打印 hello!! import java.awt.BorderLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListenerimport javax.swing.*

public class Press { /**

* @param args

*/

JFrame jf = new JFrame("内部匿名类演示")//创建一个JFrame组件

JButton jb = new JButton("Press me") //创建按钮

JLabel jt = new JLabel() //创建一个标签用来输出“hello!!”

public Press(){

jf.add(jb,BorderLayout.SOUTH) //添加按钮

jf.add(jt,BorderLayout.CENTER) //添加标签

jf.setSize(200,200)//设置jf大小

jf.setVisible(true)//设置jf为可见

/*接下来是内部匿名类的应用了,为jb添加一个左键单击响应事件*/

jb.addActionListener(new ActionListener(){ /*这里就是内部匿名类了,没有类名,下面是类的方法体*/ @Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

jt.setText("hello!!")

}})

}

public static void main(String[] args) {

// TODO Auto-generated method stub

Press p =new Press()

}}

你可以试着给jf添加一个事件响应,让它点×可以关掉,这样你就能理解匿名内部类了,再看看书里对“内部类”、“匿名类”的介绍,一个个理解这样“匿名内部类”就没问题了

1、匿名内部类就是没有名字的内部类。这是Java为了方便我们编写程序而设计的一个机制。因为有时候有的内部类只需要创建一个它的对象就可以了,以后再不会用到这个类,这时候使用匿名内部类就比较合适,而且也免去了给它取名字的烦恼。

2、如果满足下面的一些条件,使用匿名内部类是比较合适的:

·只用到类的一个实例。

·类在定义后马上用到。

·类非常小(SUN推荐是在4行代码以下)

·给类命名并不会导致你的代码更容易被理解。

在使用匿名内部类时,要记住以下几个原则:

·匿名内部类不能有构造方法。

·匿名内部类不能定义任何静态成员、方法和类。

·匿名内部类不能是public,protected,private,static。

·只能创建匿名内部类的一个实例。

·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。

·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。

3、用匿名内部类创建多线程有两种方式,和创建一个线程是一样的。

第①种继承Thread:

new

Thread(){

public

void

run(){

//do

something

}

}.start()

第②种实现

Runnable接口:

new

Thread(new

Runnable()

{

public

void

run()

{

//do

something

}

})

{

}.start()


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11796005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存