匿名内部类

本质上是一个没有名字的局部内部类,定义在方法中、代码块中,等。

作用:方便创建子类对象,最终目的为了简化代码编写。

 

特点:

     1.匿名内部类是一个没有名字的内部类。

     2.匿名内部类写出来就会产生一个匿名内部类的对象。

     3.匿名内部类的对象类型相当于是当前new的那个的类型的子类类型。

 

例子:

 1 public class test {
 2     public static void main(String[] args) {
 3 
 4         //匿名内部类
 5         Swimming s = new Swimming() {
 6             @Override
 7             public void swim() {
 8                 System.out.println("学生开始游泳!");
 9             }
10         };
11         go(s);
12 
13         //可以把匿名内部类整体当做参数
14         go( new Swimming() {
15             @Override
16             public void swim() {
17                 System.out.println("老师游泳!");
18             }
19         });
20     }
21 
22     /**
23      * 老师、学生、运动员可以一起参加游泳比赛
24      */
25     public static void go(Swimming s) {
26         System.out.println("开始!");
27         s.swim();
28         System.out.println("结束!");
29     }
30 }
31 
32 interface Swimming{
33     void swim();
34 }

匿名内部类可以作为方法的实际参数进行传输。

 

 

例子2:

 1 public class Demo {
 2     public static void main(String[] args) {
 3         //1.创建窗口
 4         JFrame win = new JFrame("登录界面");
 5         //桌布
 6         JPanel panel = new JPanel();
 7         win.add(panel);
 8 
 9         //2.创建一个按钮对象
10         JButton btn = new JButton("登录");
11 
12         //匿名内部类, 监听
13         btn.addActionListener(new ActionListener() {
14             @Override
15             public void actionPerformed(ActionEvent e) {
16                 JOptionPane.showMessageDialog(win, "成功!");
17             }
18         });
19 
20         //3.把按钮对象添加到桌布上展示
21         panel.add(btn);
22 
23         //4.展示窗口
24         //窗口大小
25         win.setSize(300, 300);
26         //居中
27         win.setLocationRelativeTo(null);
28         win.setVisible(true);
29     }
30 }

 

posted @ 2022-07-16 17:35  小王同学学编程  阅读(101)  评论(0编辑  收藏  举报
levels of contents