Java程序设计案例教程 钱银中 第7章 枚举和泛型新ppt课件_第1页
Java程序设计案例教程 钱银中 第7章 枚举和泛型新ppt课件_第2页
Java程序设计案例教程 钱银中 第7章 枚举和泛型新ppt课件_第3页
Java程序设计案例教程 钱银中 第7章 枚举和泛型新ppt课件_第4页
Java程序设计案例教程 钱银中 第7章 枚举和泛型新ppt课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在线教务辅导网:在线教务辅导网:shangfuwang 更多课程配套课件资源请访问在线教务辅导网更多课程配套课件资源请访问在线教务辅导网第7章 枚举和泛型 1 枚举 n 枚举运用关键字enum定义。例如,以下代码定义了一个表示季节的枚举Season:n enum Season n n SPRING, SUMMER, AUTUMN, WINTERn n其中的标识符SPRING、SUMMER、AUTUMN和WINTER称为枚举常量,它们都是Season的public和static成员 n 声明枚举变量:n Season season;1 枚举n 对枚举变量season赋值:n season = S

2、eason.SUMMER;n 枚举变量和枚举值之间可以运用= =进展比较,还可以在switch语句中运用枚举值,例如:n switch(season)n n case SPRING : n /n case SUMMER :n /n n 1 枚举n例7-1 枚举作为类的成员变量和方法的参数 nenum Season nnSPRING, SUMMER, AUTUMN, WINTERnn2 枚举的类特性 nJava言语的枚举具有类的特性。枚举可以定义构造方法、成员方法和实例变量n枚举是援用数据类型,枚举变量是援用变量 n枚举不能经过关键字new创建对象,每个枚举常量就是这个枚举的一个对象,援用枚举常

3、量就会调用枚举的构造方法 2 枚举的类特性 n例7-2 定义一个枚举Planet表示太阳系的九大行星,除了定义9个枚举常量外,还要定义表示半径的成员变量,初始化成员变量的构造方法,前往半径值的构造方法。 2 枚举的类特性enum Planet MERCURY (2.4397e6), VENUS (6.0518e6), EARTH (6.37814e6), MARS (3.3972e6), private double radius; Planet(double radius) this.radius = radius; double getRadius() return radius; 3 泛

4、型类n例 定义一个泛型类,成员变量是类型变量对象,并定义setter/getter方法n创建该泛型类String版的对象n创建该泛型类Integer版的对象3 泛型类 例7-3 泛型类的定义和运用 class Box private T t;void set(T t) this.t = t; T get() return t; 3 泛型类public class Example7_3 public static void main(String args) Box b = new Box( );b.set(Hello!);String s = b.get();System.out.printl

5、n(s);/b.set(new Integer(22);3 泛型类public class Example7_3 public static void main(String args) Box d = new Box( );d.set(new Integer(35);Integer i = d.get();System.out.println(i); /i自动解包后输出4 泛型方法 n泛型方法是在方法的定义中运用类型变量。n定义求数组的中间元素的泛型方法,并求String和Integer数组的中间元素。nclass ArrayGennnpublic static T getMiddle(T

6、t)n nreturn tt.length/2;nn4 泛型方法public class Example7_5 public static void main(String args) String s = we,are,studying,Java,language!;String middle1 = ArrayGen.getMiddle(s); /可省略System.out.println(middle1);Integer i = new Integer(1),2,3,4;/后3个元素自动包装成Integer对象Integer middle2 = ArrayGen.getMiddle(i);

7、System.out.println(middle2);5 泛型接口泛型接口n例:定义一个泛型接口GenInterfaceBox,其中的方法contains()判别调用对象能否包含指定的值.ninterface GenInterfaceBoxnnboolean contains(T t);n5 泛型接口泛型接口class GenClassBox implements GenInterfaceBoxT elements;GenClassBox(T elements) this.elements=elements;public boolean contains(T t) for(T x:eleme

8、nts)if(x.equals(t) return true;return false;6 有多个类型变量的泛型 n泛型中的类型变量可以有多个。有多个类型变量时,中的类型变量名之间用逗号分隔,创建对象时,必需为这些类型变量指定详细的类名 n例7-7 有两个类型变量的泛型类7 约束类型变量 n声明约束类型变量,是在类型变量的后面运用extends指定其超类,以这个超类作为类型变量的上界约束,传送给类型变量的类只能是这个超类的子类或者就是这个超类。n例7-8 运用约束类型变量的泛型类7 约束类型变量class NumberFunc T number;NumberFunc(T t) number =

9、 t;double getReciprocal() return 1 / number.doubleValue();double getFraction() return number.doubleValue() - Value();7 约束类型变量public class Example7_8 public static void main(String args) NumberFunc i = new NumberFunc(10);System.out.println(i的倒数是: + i.getReciprocal();System.out.println(i的小数是: + i.getFraction();NumberFunc d = new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论