1.内部类
1.1概述
内部类:指一个完全被定义在另一个类中的类。
是类中的五大成分之一,成员变量、方法、构造器、内部类、代码块。
我们一般在一个事物完全包含另一个事物,且该事物没有必要单独设计类时使用内部类。
1.2分类
内部类有四种形式,可分为以下四种类型:
- 成员内部类
- 静态内部类:有static修饰的内部类,属于类而非对象
- 局部内部类:定义在方法中、代码块中、构造方法体中的类
- 匿名内部类(重点):特殊的局部内部类。
1.3匿名内部类(重点)
以前的写法:
引入匿名内部类后:更加方便的创建子类对象。
匿名内部类是类的证明:
应用1:
应用2:匿名内部类直接作为一个参数来使用。
应用3:作为一个便捷对象参数传过去
代码:
package d1; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Test { public static void main(String[] args) { JFrame win = new JFrame(); JPanel panel = new JPanel(); win.add(panel); JButton btn = new JButton("登录"); panel.add(btn); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(win,"登录成功!"); } }); win.setSize(500,500); win.setLocationRelativeTo(null); win.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); win.setVisible(true); } }
2.枚举
枚举:枚举是一种特殊的类,特殊在固定数量的类。
语法格式:
2.1一般枚举
枚举类的说明:
反编译:
2.2抽象枚举
2.3应用1:用枚举写单例
2.4应用2:标识常量
3.泛型
3.1泛型认识
定义类、方法、接口时,同时声明了多个类型变量,成为泛型类、泛型方法、泛型接口。
ArrayList的泛型:
没有使用泛型的ArrayList:
使用泛型的ArrayList:
3.2泛型原理
3.3泛型的定义
泛型类
泛型接口
泛型方法
拓展:泛型的上下限:
- 泛型上限: ? extends Car : ?能接受的必须是Car或者其子类
- 泛型下限: ? super Car : ?能接受的必须是Car或者其父类
3.4泛型的注意事项
- 泛型擦除:
泛型是在编译阶段存在的,一旦程序被编译成了class文件,class文件中就不存在泛型了。
- 泛型不支持基本数据类型,只支持对象类型(引用数据类型)。
EOF