- 浏览: 379882 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (107)
- Linux (2)
- WebService (4)
- Java基础 (18)
- 优秀博客文章 (6)
- 面试 (2)
- 视频 (1)
- 开源软件 (7)
- DOS命令、批处理 (2)
- SSH Mybatis (11)
- MQ (3)
- 个人开发者 (1)
- 设计模式 (2)
- 博客 (1)
- 缓存 (1)
- 数据库 (10)
- 工具软件 (9)
- Tomcat (3)
- 网络 (2)
- XML 、JSON (1)
- OSGI (1)
- 算法 (1)
- 计算机基础、网络 (1)
- Web 开发 (3)
- 程序人生 (1)
- Servlet基础 (1)
- 英语 (1)
- 临时、未分类 (4)
- 网路、word使用技巧 (2)
- Java性能优化 (0)
最新评论
-
360pluse:
使用apache ActiveMQ深入企业级程序设计网盘地址: ...
Active MQ技术文章(JMS) -
星辰海:
问下,像TimerTask一旦抛异常,就永远不执行了,这种情况 ...
spring学习系列 -- 定时器三 两种定时器的比较 -
360pluse:
使用apache ActiveMQ深入企业级程序设计百度网盘: ...
Active MQ技术文章(JMS) -
xj56ai:
能不能 提供一下 包
Spring 学习系列 -- Spring + Mybatis 从零开始配置多数据源访问 -
wejack639:
写的很好,很有用,谢谢
spring学习系列 -- 定时器三 两种定时器的比较
1 枚举的应用 存储每周中的天份
/** * 枚举的应用 存储每周中的天份 * * a 第一行是枚举类型 * b 构造器是private * c 定义若干个抽象方法 * d switch (this): 枚举类可以在switch语句中使用. */ public enum WeekDateEnum { // 类的第一行枚举类型 MON { @Override public WeekDateEnum nextDay() { return TUES; } @Override public WeekDateEnum preDay() { return SUN; } }, TUES { @Override public WeekDateEnum nextDay() { return WEDNES; } @Override public WeekDateEnum preDay() { return MON; } }, WEDNES { @Override public WeekDateEnum nextDay() { return THURS; } @Override public WeekDateEnum preDay() { return TUES; } }, THURS { @Override public WeekDateEnum nextDay() { return FRI; } @Override public WeekDateEnum preDay() { return WEDNES; } }, FRI { @Override public WeekDateEnum nextDay() { return SATUR; } @Override public WeekDateEnum preDay() { return THURS; } }, SATUR { @Override public WeekDateEnum nextDay() { return SATUR; } @Override public WeekDateEnum preDay() { return FRI; } }, SUN { @Override public WeekDateEnum nextDay() { return SATUR; } @Override public WeekDateEnum preDay() { return MON; } }; /** * 私有构造器 */ private WeekDateEnum() { } /** * 下一天 * * @return */ public abstract WeekDateEnum nextDay(); /** * 前一天 * * @return */ public abstract WeekDateEnum preDay(); /** * 枚举对象公共的toString方法,可以在case块中反馈自己想要返回的信息 */ public String toString() { switch (this) { case MON: return "WeekDateEnum.MON"; case TUES: return "WeekDateEnum.TUES"; case WEDNES: return "WeekDateEnum.WEDNES"; case THURS: return "WeekDateEnum.THURS"; case FRI: return "WeekDateEnum.FRI"; case SATUR: return "WeekDateEnum.SATUR"; case SUN: return "WeekDateEnum.SUN"; default: return null; } } }
测试main函数
// 使用JDK中提供的枚举特性功能应用 WeekDateEnum weekDateEnum = WeekDateEnum.MON; // 获得一个枚举对象 System.out.println(WeekDateEnum.values().length); // 获得枚举成员数量 System.out.println(weekDateEnum.name()); // 获得枚举的字符串名称 System.out.println(weekDateEnum.toString()); // 打印枚举对象,已重写toString方法,默认打印枚举的名称 System.out.println(weekDateEnum.nextDay().ordinal()); // 枚举成员列表中的位置 System.out.println(WeekDateEnum.valueOf("FRI").nextDay().ordinal()); System.out.println("---------------遍历枚举成员,使用JDK的枚举特性-------------------------"); for (WeekDateEnum enumDemo : WeekDateEnum.values()) { System.out.println(enumDemo); }
2 Color类型:多参数构造器
/** * 构造器是有多个参数方法 * * @author Administrator * */ public enum Color { RED(255,0,0),BLUE(0,0,255),BLACK(0,0,0),YELLOW(255,255,0),GREEN(0,255,0); //构造枚举值,比如RED(255,0,0) private Color(int rv,int gv,int bv){ this.redValue=rv; this.greenValue=gv; this.blueValue=bv; } public String toString(){ //覆盖了父类Enum的toString() return super.toString()+"("+redValue+","+greenValue+","+blueValue+")"; } private int redValue; //自定义数据域,private为了封装。 private int greenValue; private int blueValue; }
-
Color枚举类就是class,而且是一个不可以被继承的final类。
枚举值(RED,BLUE...)都是public static final,枚举值最好全部大写. - 枚举类的构造器有很大的不同:
(1) 构造器只是在构造枚举值的时候被调用。(2) 构造器只能私有private,绝对不允许有public构造器。因为我们知道枚举值是public static final的常量而已。 但枚举类的方法和数据域可以允许外部访问。
- 所有枚举类都继承了Enum的方法,下面我们详细介绍这些方法。
(1) ordinal()方法: 返回枚举值在枚举类种的顺序。Color.RED.ordinal(); //返回结果:0 Color.BLUE.ordinal(); //返回结果:1
(2) compareTo()方法: Enum实现了java.lang.Comparable接口,因此可以比较象与指定对象的顺序。Enum中的compareTo返回的是两个枚举值的顺序之差。当然,前提是两个枚举值必须属于同一个枚举类,否则会抛出ClassCastException()异常。
Color.RED.compareTo(Color.BLUE); //返回结果 -1
(3) values()方法: 静态方法,返回一个包含全部枚举值的数组。Color[] colors=Color.values(); for(Color c:colors){ System.out.print(c+","); }//返回结果:RED,BLUE,BLACK YELLOW,GREEN,
Color c=Color.RED; // 获取Color枚举类的一个实例 System.out.println(c);//返回结果: RED
(5) valueOf()方法: 返回带指定名称的指定枚举类型的枚举常量。
Color.valueOf("BLUE"); //返回结果: Color.BLUE
(6) equals()方法: 比较两个枚举类对象的引用。
public final boolean equals(Object other) { return this==other; }
参考文献:
- 枚举(用Java普通类模拟枚举的实现原理及JDK枚举API使用示例) http://blog.csdn.net/xyang81/article/details/7185428
- Java中的Enum的使用与分析 http://www.cnblogs.com/frankliiu-java/archive/2010/12/07/1898721.html
发表评论
-
Java研究 -- Jdk获取本地计算机名称的一个Bug
2012-08-31 14:15 3280通过Java1.6的jdk获取中文计算机名称时,存在一 ... -
java基础 -- java自带exe
2012-08-29 08:33 966Java.exe 执行类: java ... -
java基础 -- IO、NIO
2012-08-25 09:32 794IO参考文献 NIO参考文献 ... -
java基础 -- 乱码
2012-08-24 13:55 830BufferedReader读取utf-8文件(html ... -
java基础 -- 注释
2012-08-24 13:37 779参考文献 J2SE5中的最新注 ... -
Swing学习系列 -- Swing读书笔记目录
2012-07-28 14:54 1203为了便于二次查找,学习,特列出Swing的目录如下 ... -
Java核心多线程 -- 消费者生产者Demo一
2012-07-28 13:11 1780目的 实现1个生产者和多个消费者合作工作的模式 手段 ... -
Java技术文章
2012-07-03 22:21 1099java虚拟机 java.lang.OutOf ... -
Java正则表达式
2012-06-21 13:27 1227参考文献: 1. 大名鼎鼎的《正则表达式3 ... -
Java调用外部文件
2012-06-19 18:25 1464Demo 涉及到执行外部函数时的环境变量 使用 ... -
Java基础内容技术文章
2012-06-19 13:54 953内存、引用 浅析Java的“克 ... -
Tomcat 加载jar包的顺序
2012-06-16 12:45 13826实验目的 2个jar包中,各有一个类名完全相同 ... -
Java内存的技术文章
2012-06-07 18:43 903java.lang.OutOf ... -
java打包成exe
2012-05-30 13:36 1106目录结构 jar -- config 配置文件 ... -
Java关键字
2012-05-23 22:20 796transient 变量 ... -
Beanutil应用
2012-05-01 00:08 16360 包 org.apache.commons.beanut ... -
Java性能
2012-04-30 02:04 1070Java编程中“为了性能 ...
相关推荐
总的来说,学习Java枚举不仅能够帮助我们编写更清晰、更安全的代码,还能提高程序设计的效率。通过深入理解枚举的特性和用法,可以更好地应对各种编程场景,尤其是在处理固定值集合或需要类型安全的场合。在Java EE...
"Java Enum 枚举学习资料" Java Enum 枚举学习资料是 Java 编程语言中的一种特殊类型,它主要用来实现一组固定的常量。 Enum 枚举类型是 Java 5 中引入的一种新特性,旨在解决传统的 int 枚举常量的缺陷。 1. 枚举...
在本主题“枚举学习源代码”中,我们将深入探讨枚举的概念、用法以及如何在实际项目中应用。 1. 枚举的基本概念: 枚举是预定义的一组相关值的集合,这些值通常表示某种固定范围或状态。枚举成员是不可变的,并且...
枚举学习资料小结 枚举类型是编程语言中的一种基本数据类型,它用于定义一组相关的符号常量。枚举类型的主要特点是可以使代码更易于维护、更清晰、更易于键入。下面是关于枚举类型的详细知识点: 1. 枚举类型的...
本资源是一个数学广场列表枚举学习教案,主要内容是通过列表枚举法解决羊鸭数量问题。该资源共13页,涵盖了问题的提出、学习任务、列表枚举法的应用和思考讨论等方面。 知识点一:数学模型的建立 在该资源中,羊鸭...
java枚举学习.doc
8. **工具和调试**:USB_HID_学习之枚举为鼠标.pdf和USB_HID_学习之枚举为键盘.pdf可能包含关于使用USB分析器工具、示波器以及调试技巧的信息,这些工具可以帮助开发者理解设备与主机间的通信细节,查找并解决问题。...
C语言中的结构体(struct)和共同体(union)以及枚举(enum)是重要的数据组织形式,它们允许我们将不同类型的变量组合成一个整体,便于管理和处理。以下是对这些概念的详细解释: 1. 结构体(Struct): 结构体是...
本篇文章将深入讲解如何通过Objective-C的枚举来学习iOS中的位操作。 位操作是针对二进制数的底层操作,它直接在数字的二进制位上进行运算,包括位运算和移位操作。这些操作对于理解计算机内部工作原理以及优化程序...
Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的...通过枚举实例代码的学习,初学者能够更好地理解和掌握这一强大的编程工具。
C# 数据类型、数组、结构和枚举 C# 数据类型是学习 C# 的基础,它们是构成 C# 程序设计...C# 数据类型、数组、结构和枚举是学习 C# 的基础,它们是构成 C# 程序设计的基本元素。理解这些概念和技术是学习 C# 的关键。
数学广场列表枚举PPT学习教案.pptx
通过本文的学习,我们不仅了解了USB枚举的基本概念及其重要性,还深入掌握了如何使用USB Monitor 2.26这款工具来进行USB设备枚举过程的监控和分析。这对于我们理解USB设备如何与主机通信,以及在开发或调试USB相关...
共用体与枚举类型是c语言的重要内容之一,由于授课时间 的安排原因,学生的重视程度不够,所以有些学生掌握的不是很扎实,这里有关于共用体与枚举类型的学习课件,希望能给一些同行带来用处!
本资源包提供了一些关于`Enum`枚举的深入学习材料,包括实例、常见问题以及相关的文档,非常适合Java开发者进行高级编程的学习和复习。 首先,枚举的基本语法是定义一个公共类,前面加上关键字`enum`。例如: ```...
学习这个实例可以帮助开发者更好地理解和运用枚举来组织代码,同时也能提高在数字信号处理中的编程能力。通过分析和修改这个程序,可以深入理解如何在实际项目中应用枚举和数字波形。 总之,“枚举各类波形实例”...
### 用查询方式学习USB枚举过程的关键知识点 #### 一、引言 USB(通用串行总线)因其易用性和广泛的应用场景而在各种电子设备中占据着核心地位。对于USB设备开发者而言,理解USB的工作原理至关重要。尤其是在底层...
易语言是一种专为中国人设计的编程语言,它以简明的中文语法,...通过阅读和学习这段源码,可以深入了解易语言中如何实现枚举的模拟,以及如何在实际项目中应用这一技巧。这将有助于提高易语言编程的效率和代码质量。
在Java编程语言中,JDK的新特性之一是枚举(Enum)。枚举是一种特殊的类,它提供了一种安全的方式来表示一组固定数量的常量。在本文中,我们将深入探讨枚举类型及其在JDK中的应用。 一、枚举的定义与使用 1. 基本...
Java枚举类型是Java语言中一种特殊的类,用于定义固定的常量集合,它提供了一种安全、类型化的方式来表示一组有限的值。枚举在Java中被引入为一个...通过实践和学习,你可以掌握如何有效地使用枚举来解决各种编程问题。