2022-8-1第七组 潘堂智 泛型 与 枚举

为什么要引入泛型

泛型的本质就是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。
也就是说泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

引入的意义在于:

适用于多种数据类型执行相同的代码。
如果没有泛型,要实现不同类型的加法,每种类型都需要重载一个add方法;通过泛型,我们可以复用为一个方法


如图中所示,要是有不同的数据类型就要重写许多的方法

泛型限定

如果想要对?泛型通配符的使用范围进行限制,那么可以使用泛型限定(上限,下限)
​ <? extends A>:泛型类型要么是A类,要么是A类的子类, 孙子类...。 上限。
​ <? super A>: 泛型类型要么是A类,要么是A类的父类, 爷爷类 直到Object类。 下限。

枚举类型

 定义:
用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。是指将变量的水电费水电费水电费列出来,变量的值只限于列举出来的值的范围内。

在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

public enum Color {

RED, GREEN, BLANK, YELLOW

}

	public enum Color {  
	RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
	// 成员变量  
	private String name;  
	private int index;  
	// 构造方法  
	private Color(String name, int index) {  
		this.name = name;  
		this.index = index;  
	}  
	// 普通方法  
	public static String getName(int index) {  
		for (Color c : Color.values()) {  
			if (c.getIndex() == index) {  
				return c.name;  
			}  
		}  
		return null;  
	}  
	// get set 方法  
	public String getName() {  
		return name;  
	}  
	public void setName(String name) {  
		this.name = name;  
	}  
	public int getIndex() {  
		return index;  
	}  
	public void setIndex(int index) {  
		this.index = index;  
	}  
}

枚举实现单例模式:

image

posted @ 2022-08-01 22:12  阿萨德菩提子  阅读(13)  评论(0编辑  收藏  举报