-------
android培训、
java培训、期待与您交流! ----------
为什么要有枚举
问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;或即使使用常量方式也无法阻止意外。
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。
用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能。
私有的构造方法
每个元素分别用一个公有的静态成员变量表示
可以有若干公有方法或抽象方法。采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类。
枚举的基本应用
举例:定义一个Weekday的枚举。
扩展:枚举类的values,valueOf,name,toString,ordinal等方法(记住,讲课时要先于自定义方法前介绍,讲课更流畅)
总结:枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象,例如可以调用WeekDay.SUN.getClass().getName和WeekDay.class.getName()。
枚举的高级应用
枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。
枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后要有分号与其他成员分隔。把枚举中的成员方法或变量等放在枚举元素的前面,编译器报告错误。
带构造方法的枚举
构造方法必须定义成私有的
如果有多个构造方法,该如何选择哪个构造方法?
枚举元素MON和MON()的效果一样,都是调用默认的构造方法。
带方法的枚举
定义枚举TrafficLamp
实现普通的next方法
实现抽象的next方法:每个元素分别是由枚举类的子类来生成的实例对象,这些子类采用类似内部类的方式进行定义。
增加上表示时间的构造方法
枚举只有一个成员时,就可以作为一种单例的实现方式。
分享到:
相关推荐
五大基础算法——枚举,算法数据结构 枚举算法是五大基础算法之一,它是通过列举所有可能的解,然后对每个解进行判断,若符合要求则采纳这个解,不符合则抛弃。枚举算法通常用于解决无法使用其他算法解决的问题,...
Java编程语言中,枚举和反射机制是两个重要的特性,它们在不同的场景下有着独特的用途。下面我们将详细探讨这两个主题。 一、枚举 枚举(Enum)在Java中用于定义一组固定数量的值,这些值可以作为常量使用。枚举...
使用`Class.forName()`方法可以获取枚举类,`getDeclaredFields()`获取枚举的字段(即枚举值),`getEnumConstants()`则可以获取所有枚举实例。例如: ```java Class<Weekday> enumClass = Class.forName(...
枚举法是一种在解决问题时,通过尝试列举所有可能情况来找到正确答案的方法。在数学、计算机科学和逻辑推理中,枚举法常被用于解决组合问题、排列问题以及寻找特定解的问题。对于三年级的学生来说,掌握枚举法可以...
它可以接受`byte`, `short`, `int`, `char`类型的值,JDK5之后也可以处理枚举类型,JDK7开始支持`String`。`default`分支用来处理所有未匹配的case,它可以在`switch`的最后,此时`break`可以省略。每个`case`通常都...
数学广场——列表枚举.doc
Python中的枚举(Enumeration)是一种强大的工具,用于创建一组具有特定命名和有序的常量。在Python 3.4及更高版本中,枚举通过`enum`模块提供。本篇文章将深入探讨枚举的各个方面,包括其定义、作用以及如何在代码...
沪教版二年级下册《数学广场——列表枚举》数学教案.doc
本教程出自知名教育机构黑马程序员,该机构以其深入浅出的教学方式和实用的案例著称。 在本教程中,你将学习到以下关键知识点: 1. **Java环境搭建**:首先,你需要了解如何下载和安装Java Development Kit (JDK)...
from enum import Enum class Vip(Enum): GREEN=1 YELLOW=2 PURPLE=3 print(type(GREEN))#报错 print(type(Vip.GREEN))# print(type(Vip.GREEN.name))# ...print(Vip.GREEN.name)#GREEN(打印枚举的名字)(返回
4、 定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。 5、 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段...
5. **枚举**:创建固定的常量集合,增强类型安全。 6. **泛型**:提供类型参数化,增强了代码的复用性和安全性。 以上内容涵盖了Java初学者在使用Eclipse进行编程时的基本操作和一些重要的JDK5新特性,通过熟练掌握...
在第8章“自制容器——结构体和枚举”中,我们将深入理解结构体的使用以及相关概念。 首先,结构体的使用方式如下: ```c struct 标识符{ 数据类型 1 成员 1; 数据类型 2 成员 2; … 数据类型 n 成员 n; }; ``...
在Java编程语言中,JDK的新特性之一是枚举(Enum)。枚举是一种特殊的类,它提供了一种安全的方式来表示一组固定数量的常量。在本文中,我们将深入探讨枚举类型及其在JDK中的应用。 一、枚举的定义与使用 1. 基本...
【第11章 抽奖——随机数与枚举】 在编程中,模拟抽奖系统往往涉及到随机数的生成和特定逻辑的实现。本章主要介绍了如何利用Java中的随机数类`Random`,以及如何运用枚举类型来创建更加规范化的抽奖程序。同时,还...
内容概要:本文深入介绍了Java中的两个重要特性——枚举和泛型。首先详细讲述了枚举的基本概念、枚举类型的特点及其实现方式,如枚举的成员方法、构造器以及如何将其用于高级编程场合。其次对泛型的概念进行了解释,...
枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-master"显然是一个用于演示如何通过反射来操作枚举类的示例。 首先,让我们理解枚举类的基本概念。枚举类在Java中用于定义...