第十三章 枚举类型与泛型总结,t检验三种类型总结
终极管理员 知识笔记 107阅读
枚举类型是一种特殊的数据类型它允许一个变量只能取预先定义好的一组离散值中的一个。在许多编程语言中枚举类型通常用于表示具有一定范围内固定取值的情况例如星期几、月份等。
13.1.1使用枚举类型设置常量在Java中枚举类型由enum
关键字声明。以下是一个简单的例子演示如何定义一个四季的枚举类型

enum SeasonEnum { spring,summerautumnwinter;}
例题13.1分别创建四季的接口常量和枚举比较两者的使用场景。 13.1.2 深入了解枚举类型
由于枚举类型较传统定义常量的方式除具有参数类型检测的优势外还具有其他方面的优势。

用户可以将一个枚举类型看作是一个类它继承java.lang.Enum类。
枚举类型成员都默认被final、public、static修饰所有当使用枚举类型成员时直接使用枚举类型名称调用枚举类型成员即可
由于枚举类型对象继承java.lang.Enum类所有该类中一些操作枚举类型的方法都可以应用到枚举类型。
例题13.2打印四季枚举中的所有枚举值例题13.3使用字符串创建一个季节的枚举值并判断季节的位置
例题13.4输出每一个季节的索引位置 例题13.5为四季枚举创建构造方法记录每一个季节特征 13.1.3 使用枚举类型的优势
枚举类型声明提供了一种对用户友好的变量定义方式枚举了某种数据所有尽可能出现的值总结枚举类型具有以下特点
类型安全
紧凑有效的数据定义
可以和程序其他部分完美交互
运行效率高
13.2 泛型泛型Generics是Java编程语言的一项重要特性它提供了一种在类、接口和方法中使用类型参数的机制使得代码可以更加灵活、可重用、类型安全。
13.2.1 回顾向上转型与向下转型public class Test{ private Object b; public Object getB(){ return b; } public void setB(Object b){ this.b b; } public static void main(String[] age){ Test t new Test(); t.setB(Boolean.valueOf(true)); System.out.println(t.getB()); t.setB(Float.valueOf(12.3)); Float f (Float) t.getB(); System.out.println(f); }}
运行结果
true12.3
13.2.2 定义泛型类
T是泛型的名称代表一种类型。开发者在创建该对象时需要指定T所代表的值与返回的值都以Object类型为主当需要使用这些实例时必须正确地将该实例转换为原来的类型否则在运行时都将会发生ClassCastException异常。
例题13.6创建带泛型的图书类 13.2.3 泛型的常规用法定义泛型类时声明多个类型
class MyClass<T1,T2>{}
其中t1和t2为可能被定义的类型。
这样在实例化指定类型的对象时就可以指定多个类型。例如
MyClass<Boolean>,Float>mnew MyClass<Boolean,Float>();
例题13.7定义泛型数组 13.2.4 泛型的高级用法 13.2.5 泛型总结泛型的类型参数只能是类类型不可以是简单型如A<int>这种泛型定义就是错的
泛型的类型个数可以是多个
可以使用extends关键字限制泛型的类型
可以使用通配符限制泛型的类型