`
a347347347
  • 浏览: 4144 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

黑马程序员——枚举

阅读更多
 ------- 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方法:每个元素分别是由枚举类的子类来生成的实例对象,这些子类采用类似内部类的方式进行定义。
 增加上表示时间的构造方法
 枚举只有一个成员时,就可以作为一种单例的实现方式。
0
2
分享到:
评论

相关推荐

    五大基础算法——枚举,算法数据结构

    五大基础算法——枚举,算法数据结构 枚举算法是五大基础算法之一,它是通过列举所有可能的解,然后对每个解进行判断,若符合要求则采纳这个解,不符合则抛弃。枚举算法通常用于解决无法使用其他算法解决的问题,...

    Java期末复习——枚举与反射机制

    Java编程语言中,枚举和反射机制是两个重要的特性,它们在不同的场景下有着独特的用途。下面我们将详细探讨这两个主题。 一、枚举 枚举(Enum)在Java中用于定义一组固定数量的值,这些值可以作为常量使用。枚举...

    JDK5.0新特性(3)——枚举

    使用`Class.forName()`方法可以获取枚举类,`getDeclaredFields()`获取枚举的字段(即枚举值),`getEnumConstants()`则可以获取所有枚举实例。例如: ```java Class<Weekday> enumClass = Class.forName(...

    三年级——枚举法提高PPT学习教案.pptx

    枚举法是一种在解决问题时,通过尝试列举所有可能情况来找到正确答案的方法。在数学、计算机科学和逻辑推理中,枚举法常被用于解决组合问题、排列问题以及寻找特定解的问题。对于三年级的学生来说,掌握枚举法可以...

    黑马程序员Java基础视频辅导班Day03

    它可以接受`byte`, `short`, `int`, `char`类型的值,JDK5之后也可以处理枚举类型,JDK7开始支持`String`。`default`分支用来处理所有未匹配的case,它可以在`switch`的最后,此时`break`可以省略。每个`case`通常都...

    数学广场——列表枚举.doc

    数学广场——列表枚举.doc

    Python学习之路——枚举类

    Python中的枚举(Enumeration)是一种强大的工具,用于创建一组具有特定命名和有序的常量。在Python 3.4及更高版本中,枚举通过`enum`模块提供。本篇文章将深入探讨枚举的各个方面,包括其定义、作用以及如何在代码...

    沪教版二年级下册《数学广场——列表枚举》数学教案.doc

    沪教版二年级下册《数学广场——列表枚举》数学教案.doc

    Java基础案例教程.rar

    本教程出自知名教育机构黑马程序员,该机构以其深入浅出的教学方式和实用的案例著称。 在本教程中,你将学习到以下关键知识点: 1. **Java环境搭建**:首先,你需要了解如何下载和安装Java Development Kit (JDK)...

    Python3入门与进阶——枚举,留神关键点。

    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、 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段...

    day17 java

    5. **枚举**:创建固定的常量集合,增强类型安全。 6. **泛型**:提供类型参数化,增强了代码的复用性和安全性。 以上内容涵盖了Java初学者在使用Eclipse进行编程时的基本操作和一些重要的JDK5新特性,通过熟练掌握...

    第8章 自制容器——结构体和枚举1

    在第8章“自制容器——结构体和枚举”中,我们将深入理解结构体的使用以及相关概念。 首先,结构体的使用方式如下: ```c struct 标识符{ 数据类型 1 成员 1; 数据类型 2 成员 2; … 数据类型 n 成员 n; }; ``...

    MLDn学习笔记 —— JDK新特性(枚举)

    在Java编程语言中,JDK的新特性之一是枚举(Enum)。枚举是一种特殊的类,它提供了一种安全的方式来表示一组固定数量的常量。在本文中,我们将深入探讨枚举类型及其在JDK中的应用。 一、枚举的定义与使用 1. 基本...

    第11章抽奖——随机数与枚举.ppt

    【第11章 抽奖——随机数与枚举】 在编程中,模拟抽奖系统往往涉及到随机数的生成和特定逻辑的实现。本章主要介绍了如何利用Java中的随机数类`Random`,以及如何运用枚举类型来创建更加规范化的抽奖程序。同时,还...

    Java编程基础教程:枚举与泛型的深入讲解

    内容概要:本文深入介绍了Java中的两个重要特性——枚举和泛型。首先详细讲述了枚举的基本概念、枚举类型的特点及其实现方式,如枚举的成员方法、构造器以及如何将其用于高级编程场合。其次对泛型的概念进行了解释,...

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-master"显然是一个用于演示如何通过反射来操作枚举类的示例。 首先,让我们理解枚举类的基本概念。枚举类在Java中用于定义...

Global site tag (gtag.js) - Google Analytics