资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第12章 枚举,随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的数据。例如,性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。在程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。要实现这种功能就要用到我们这一章要学习的枚举。,12.1 枚举简介,事先考虑到某一变量可能的取值,尽可能用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法。用这种方法定义的类型称为枚举类型。在生活中有很多关于枚举的例子,就如图12.1所示的两个例子。,12.2 枚举的使用,枚举在Java语言中的作用很大。它可以对类似的相同类型的对象同时进行声明,在程序中调用这些元素时,不会出现混淆和重复。由于枚举的统一性,使得开发人员编写的代码量大大减少了,同时增加了程序的阅读性和修改性。下面我们就来学习如何定义和使用枚举。,12.2.1 常见的枚举定义方法,在JDK 1.5中,Java引入了关于枚举类型的设置方法,即使用enum关键字。其一般的定义语法,如图12.2所示。,12.2.1 常见的枚举定义方法,例如我们可以举一个例子,比如设枚举名为weekday,枚举值有7个,即一周的7天。则凡被说明为weekday类型的变量取值,只能是这7天中的某一天。枚举变量有三种说明方式,我们可以采取任意一种方式进行说明,如图12.3所示。,12.2.2 在程序中使用枚举,当创建了一个枚举类型之后,就意味着要在今后的代码中进行调用。调用先前定义的枚举类型,同其他调用语句一样,需要声明该类的一个对象,并通过对象对枚举类型进行操作。,12.2.3 在switch语句中使用枚举,使用enum关键字创建的枚举类型,可以直接在多处控制语句中使用,如switch语句等。在JDK 1.5之前,switch语句只能用于判断字符或数字,而在JDK 1.5之后,通过enum创建的枚举类型,也可以被switch判断使用。,12.3 枚举类和枚举关键字,枚举类型的出现,有助于简洁程序的代码量,减少出错率。在大多数情况下,枚举类和枚举关键字是相互依存的。,12.3.1 枚举类,枚举类是在java.lang包下的一个公共类,它的作用是用来构造新的枚举类型。这是JDK 1.5之后Java推出的一个新的类,用来完善枚举这一常用集合在Java中的不足。在JDK API中我们可以看到,enum类定义了大约十多个方法。我们可以用表12.1简要的介绍一下这些方法。,12.3.2 枚举关键字,相对于枚举类,枚举关键字(enum关键字)则是定义的一个枚举类型。实际上,在此次定义的过程中,通过enum关键字相当于定义了一个类,并且此类将继承enum类。,12.4 类集对于枚举的支持,在JDK 1.5之后,Java中又增加了两个类集的操作类,EnumMap和EnumSet来更好地使用枚举。,12.4.1 EnumMap,Map是Java中的一个类,EnumMap是Map类的子类。我们可以调用EnumMap的方法来实现对对象的控制。,12.4.2 EnumSet,EnumSet本身是Set接口的子类但是此类中并没有定义任何的构造方法,这表示构造方法被私有化了。所有对此类方法的操作均是静态操作。,12.5 枚举的构造方法、接口和抽象方法,枚举的使用非常灵活。枚举可以应用于代码中的各个角落 ,只要定义的对象具有枚举的形式,均可以使用枚举对其定义,这样在减少代码量的同时,也增加了代码的可读性和可操作性。我们下面分别对枚举的构造方法、接口和抽象方法作一简要说明。,12.5.1 枚举的构造方法,在枚举中可以直接定义构造方法。但要注意的是:一旦构造方法定义之后,则所有的枚举对象都必须明确调用此构造方法。,12.5.2 枚举的接口,当一个枚举实现一个接口之后,各个枚举对象都必须分别实现接口中的抽象方法。 在调用枚举时,需要在后面实现在接口中定义的方法getColor(),只有这样,才能实现接口,而想直接调用RED(“红色“)这样的方式是错误的。 定义在枚举里的抽象方法必须在后期声明的枚举类型中,任何一个对象都分别实现接口中的抽象方法后才能测试成功。,12.5.3 枚举的抽象方法,我们可以通过枚举实现接口,同样,Java也可以在枚举中直接定义抽象方法。并且在一个枚举中可以定义一个或多个抽象方法。同样要注意的是:枚举中的每个对象都必须单独地实现此方法。,12.6 小结,在这一章中我们给大家介绍了枚举的概念、枚举类和枚举关键字、类集对枚举的支持和枚举的构造方法、接口和抽象方法等内容。本章的重点在于掌握enum关键字的使用以及对枚举中构造方法、接口和抽象方法的理解。而本章难点同样是对枚举中构造方法、接口和抽象方法的理解和掌握。希望大家能多加练习来更好地理解枚举的含义。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号