大连开发区招聘网站,北京东直门 网站建设,中国搜索引擎有哪些,中国建筑工程平台网一.泛型 1.定义泛型类
泛型机制语法#xff1a;
类名T 其中#xff0c;T是泛型的名称#xff0c;代表某一种类型。
【例13.6】创建带泛型的图书类
代码#xff1a; 结果#xff1a; 2.泛型的常规用法 (1)定义泛型类时声明多个变量 class MyClassT1,T2…一.泛型 1.定义泛型类
泛型机制语法
类名T 其中T是泛型的名称代表某一种类型。
【例13.6】创建带泛型的图书类
代码 结果 2.泛型的常规用法 (1)定义泛型类时声明多个变量 class MyClassT1,T2{ } 其中T1和T2为可能被定义的类型。
这样在实例化指定类型的对象时就可以指定多个类型。例如
MyClassBoolean,Float mnew MyClassBoolean.float(); (2)定义泛型时声明数组类型 【例13.7】定义泛型数组 代码 结果 可见可以在使用泛型机制时声明一个数组但是不可以使用泛型来创建数组的实例。 (3)集合类声明容器的元素
JDK中的集合接口、集合类都被定义了泛型其中ListE的泛型E实际上就是element元素的首字母MapK,V的泛型K和V就是key键和value值的首字母。 3.泛型的高级用法
(1)限制泛型可用类型
默认可以使用任何类型来实例化一个泛型类对象但Java中也对泛型类实例的类型作了限制。语法
class 类名称T extends anyClass 其中anyClass指某个接口或类。
使用泛型限制后泛型类的类型必须实现或继承anyClass这个接口或类。无论anyClass是接口还是类在进行泛型限制时都必须使用extends关键字。
(2)使用类型通配符 在泛型机制中提供了类型通配符其主要作用是在创建一个泛型类对象时限制这个泛型类的类型实现或继承某个接口或类的子类。要声明这样一个对象可以使用“”通配符来表示同时使用extends关键字来对泛型加以限制。语法
泛型类名称? extends List anull; 其中? extends List表示类型未知当需要使用该泛型对象时可以单独实例化。例如
A? extends List anull; anew AArrayList(); anew ALinkedList(); 如果实例化没有实现List接口的泛型对象编译器会报错。
除了可以实例化一个限制泛型类型的实例还可以将该实例放置在方法的参数中。例如
public void doSomething(A? extends Lista){} 在上述代码中定义方法有效地限制了传入doSomething()方法的参数类型。
(3)继承泛型类与实现泛型接口 定义为泛型的类和接口也可以被继承与实现。例如让SubClass类继承ExtendClass的泛型
lass ExtendClassT1{} class SubClassT1,T2,T3 extends ExtendClassT1{} 定义为泛型的接口也可以被实现。例如让SubClass类实现SomeInterface接口并继承接口的泛型
interface SomeInterfaceT1{} class SubClassT1,T2,T3 implements SomeInterfaceT1{} 4.泛型总结 使用方法
(1)泛型的类型参数只能是类类型不可以是简单类型如Aint这种泛型定义就是错误的。
(2)泛型的类型个数可以是多个。
(3)可以使用extends关键字限制泛型的类型。
(4)可以使用通配符限制泛型的类型。
二.枚举类型 1.使用枚举类型设置常量 使用枚举类型定义常量的语法
public enum Constants{ Constants_A, Constants-B, } 其中enum是定义枚举类型的关键字。
当需要在程序中使用该常量时可以使用Constants.Constants_A来表示。
【例13.1】分别创建四季的接口常量和枚举比较两者的使用场景
代码 结果 2.深入了解枚举类型 【例13.5】为四季枚举创建构造方法记录每一个季节的特征
代码 结果 3.使用枚举类型的优势
(1)类型安全。
(2)紧凑有效的数据定义。
(3)可以和程序其他部分完美交互。
(4)运行效率高。