/**
* 匿名内部类的使用形式
* 实例:学生和老师一起参加游泳比赛
*/
/** * 匿名内部类的使用形式 * 实例:学生和老师一起参加游泳比赛 */ public class Main { public static void main(String[] args) { //1 Swimming s=new Swimming() { @Override public void swim() { // TODO Auto-generated method stub System.out.println("学生在游泳"); } }; go(s);//学生在游泳 //2,匿名内部类可以作为方法的形参传输 go(new Swimming() { @Override public void swim() { // TODO Auto-generated method stub System.out.println("老师在游泳"); } });//老师在游泳 } public static void go(Swimming s){ System.out.println("游泳开始"); s.swim(); System.out.println("结束"); } } interface Swimming{ void swim(); }
/**
* 匿名内部类的使用场景
* 给按钮绑定点击事件
编程中需要才使用匿名内部类
*/
import java.awt.event.ActionListener; import javax.swing.Action; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; public class Main2 { public static void main(String[] args) { //创建窗口 JFrame win=new JFrame("登录界面"); win.setSize(400,300); win.setVisible(true); win.setLocationRelativeTo(null); //创建桌布 JPanel panel=new JPanel(); win.add(panel); //创建按钮 JButton b=new JButton("按"); panel.add(b); //需要才使用匿名内部类(ActionListener()是一个接口) b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(win, "按钮"); } }); } }
学习视频:黑马程序员