枚举类型和泛型:
一、枚举类型:枚举类型较传统定义常量的方式,除具有参数类型检测的优势外,还具有其他方面的优势。
用户可以将一个枚举类型看作是一个类,它继承java.lang.Enum类。
枚举类型成员都默认被final、public、static修饰,所有当使用枚举类型成员时直接使用枚举类型名称调用枚举类型成员即可
由于枚举类型对象继承java.lang.Enum类,所有该类中一些操作枚举类型的方法都可以应用到枚举类型。
二、泛型:泛型实质上就是程序员定义安全的类型。
1.回顾向上转型和向下转型:
2.定义泛型类:其中,T是泛型的名称,代表一种类型。开发者在创建该对象时需要指定T所代表的值与返回的值都以Object类型为主,当需要使用这些实例时,必须正确地将该实例转换为原来的类型,否则在运行时都将会发生ClassCastException异常。
3.泛型的常规用法:定义泛型类时声明多个变量。class MyClass<T1,T2>{ } 其中,T1和T2为可能被定义的类型。这样,在实例化指定类型的对象时就可以指定多个类型。
4.集合类声明容器的元素:JDK中的集合接口、集合类都被定义了泛型,其中List<E>的泛型E实际上就是element元素的首字母,Map<K,V>的泛型K和V就是key键和value值的首字母。
三、泛型的高级用法
1限制泛型可用类型:默认可以使用任何类型来实例化一个泛型类对象,但Java中也对泛型类实例的类型作了限制。使用泛型限制后,泛型类的类型必须实现或继承anyClass这个接口或类。无论anyClass是接口还是类,在进行泛型限制时都必须使用extends关键字。
2使用类型通配符
在泛型机制中,提供了类型通配符,其主要作用是在创建一个泛型类对象时限制这个泛型类的类型实现或继承某个接口或类的子类。要声明这样一个对象可以使用“?”通配符来表示,同时使用extends关键字来对泛型加以限制。
四、泛型总结:
1泛型的类型参数只能是类类型,不可以是简单类型,如A<int>这种泛型定义就是错误的。
2泛型的类型个数可以是多个。
3可以使用extends关键字限制泛型的类型。
4可以使用通配符限制泛型的类型。
课堂代码: