目录
- 1.内部类
- 1.1概述
- 1.2分类
- 1.3匿名内部类(重点)
- 2.枚举
- 2.1一般枚举
- 2.2抽象枚举
- 2.3应用1:用枚举写单例
- 2.4应用2:标识常量
- 3.泛型
- 3.1泛型认识
- 3.2泛型原理
- 3.3泛型的定义
- 泛型类
- 泛型接口
- 泛型方法
- 3.4泛型的注意事项
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