java(教学0) 12章java之枚举_第1页
java(教学0) 12章java之枚举_第2页
java(教学0) 12章java之枚举_第3页
java(教学0) 12章java之枚举_第4页
java(教学0) 12章java之枚举_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、第12章 枚举 随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的数据。例如,性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。在程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。要实现这种功能就要用到我们这一章要学习的枚举。整理课件12.1 枚举简介 事先考虑到某一变量可能的取值,尽可能用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法。用这种方法定义的类型称为枚举类型。在生活中有很多关于枚举的例子,就如图所示的两个例子。整理课件1

2、2.2 枚举的使用 枚举在Java语言中的作用很大。它可以对类似的相同类型的对象同时进行声明,在程序中调用这些元素时,不会出现混淆和重复。由于枚举的统一性,使得开发人员编写的代码量大大减少了,同时增加了程序的阅读性和修改性。下面我们就来学习如何定义和使用枚举。整理课件12.2.1 常见的枚举定义方法 在中,Java引入了关于枚举类型的设置方法,即使用enum关键字。其一般的定义语法,如图所示。整理课件12.2.1 常见的枚举定义方法 例如我们可以举一个例子,比如设枚举名为weekday,枚举值有7个,即一周的7天。则凡被说明为weekday类型的变量取值,只能是这7天中的某一天。枚举变量有三种

3、说明方式,我们可以采取任意一种方式进行说明,如图所示。整理课件 在程序中使用枚举 当创建了一个枚举类型之后,就意味着要在今后的代码中进行调用。调用先前定义的枚举类型,同其他调用语句一样,需要声明该类的一个对象,并通过对象对枚举类型进行操作。整理课件12.2.3 在switch语句中使用枚举 使用enum关键字创建的枚举类型,可以直接在多处控制语句中使用,如switch语句等。在JDK 之前,switch语句只能用于判断字符或数字,而在JDK 之后,通过enum创建的枚举类型,也可以被switch判断使用。整理课件12.3 枚举类和枚举关键字 枚举类型的出现,有助于简洁程序的代码量,减少出错率。

4、在大多数情况下,枚举类和枚举关键字是相互依存的。整理课件12.3.1 枚举类 枚举类是在包下的一个公共类,它的作用是用来构造新的枚举类型。这是JDK 之后Java推出的一个新的类,用来完善枚举这一常用集合在Java中的不足。在JDK API中我们可以看到,enum类定义了大约十多个方法。我们可以用表简要的介绍一下这些方法。方法名称方法名称方法作用方法作用clone()复制一份当前对象,并返回compareTo()比较此枚举于指定对象的顺序equals()当指定对象等于此枚举常量时,返回truehashCode()返回枚举常量的哈希码name()返回枚举常量的名称,在其枚举声明中对其进行声明or

5、dinal()返回枚举常量的系数toString()返回枚举常量的名称,它包含在声明中valueOf()返回带指定名称的指定枚举类型的枚举常量values()返回当前对象取值范围整理课件12.3.2 枚举关键字 相对于枚举类,枚举关键字(enum关键字)则是定义的一个枚举类型。实际上,在此次定义的过程中,通过enum关键字相当于定义了一个类,并且此类将继承enum类。整理课件12.4 类集对于枚举的支持 在JDK 之后,Java中又增加了两个类集的操作类,EnumMap和EnumSet来更好地使用枚举。整理课件12.4.1 EnumMap Map是Java中的一个类,EnumMap是Map类的

6、子类。我们可以调用EnumMap的方法来实现对对象的控制。整理课件12.4.2 EnumSet EnumSet本身是Set接口的子类但是此类中并没有定义任何的构造方法,这表示构造方法被私有化了。所有对此类方法的操作均是静态操作。整理课件12.5 枚举的构造方法、接口和抽象方法 枚举的使用非常灵活。枚举可以应用于代码中的各个角落 ,只要定义的对象具有枚举的形式,均可以使用枚举对其定义,这样在减少代码量的同时,也增加了代码的可读性和可操作性。我们下面分别对枚举的构造方法、接口和抽象方法作一简要说明。整理课件12.5.1 枚举的构造方法 在枚举中可以直接定义构造方法。但要注意的是:一旦构造方法定义之

7、后,则所有的枚举对象都必须明确调用此构造方法。整理课件12.5.2 枚举的接口 当一个枚举实现一个接口之后,各个枚举对象都必须分别实现接口中的抽象方法。 在调用枚举时,需要在后面实现在接口中定义的方法getColor(),只有这样,才能实现接口,而想直接调用RED(红色)这样的方式是错误的。 定义在枚举里的抽象方法必须在后期声明的枚举类型中,任何一个对象都分别实现接口中的抽象方法后才能测试成功。整理课件12.5.3 枚举的抽象方法 我们可以通过枚举实现接口,同样,Java也可以在枚举中直接定义抽象方法。并且在一个枚举中可以定义一个或多个抽象方法。同样要注意的是:枚举中的每个对象都必须单独地实现此方法。整理课件12.6 小结 在这一章中我们给大家介绍了枚举的概念、枚举类和枚举关键字、类集对枚举的支持和枚举的

温馨提示

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

评论

0/150

提交评论