网上查到一位大哥写的,挺好的,转过来分享~~~
Java Enum
学习
***Enum 在定义构造方法时,要定有有参数的构造方法前,必须定义无参数的,否则报错
1.
关于
Java Enum:
学过
C/C++
等语言的人,应该都对
Enum
类型略知一二。
Enum
一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用
”==”
来替换
equals
。是一种好的习惯。
JDK1.5
之前没有
Enum
这个类型,那时候一般用接口常量来替代。有了
JavaEnum
之后,可以更贴近的表示这种常量。
2.
如何使用
Java Enum
简单的用法:
JavaEnum
简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。如:
性别:
public
enum
SexEnum
{
male
,
female
;
}
颜色:
public
enum
Color {
RED
,
BLUE,GREEN,BLACK
;
}
枚举对象里面的值都必须是唯一的。
可以通过
Enum
类型名直接引用该常量,如
SexEnum.male,Color.RED.
复杂用法:
Java
为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象,看个下面的例子:
1.
代码一
WeekDay.java
:
-
-
-
-
-
-
-
-
public
enum
WeekDay {
-
Mon("Monday"
), Tue(
"Tuesday"
), Wed(
"Wednesday"
), Thu(
"Thursday"
), Fri(
-
"Friday"
), Sat(
"Saturday"
), Sun(
"Sunday"
);
-
-
-
private
final
String day;
-
-
private
WeekDay(String day) {
-
this
.day = day;
-
}
-
-
-
public
static
void
printDay(
int
i){
-
switch
(i){
-
case
1
: System.out.println(WeekDay.Mon);
break
;
-
case
2
: System.out.println(WeekDay.Tue);
break
;
-
case
3
: System.out.println(WeekDay.Wed);
break
;
-
case
4
: System.out.println(WeekDay.Thu);
break
;
-
case
5
: System.out.println(WeekDay.Fri);
break
;
-
case
6
: System.out.println(WeekDay.Sat);
break
;
-
case
7
: System.out.println(WeekDay.Sun);
break
;
-
default
:System.out.println(
"wrong number!"
);
-
}
-
}
-
-
public
String getDay() {
-
return
day;
-
}
-
}
2.
代码二
WeekDayTest.java:
-
-
-
-
-
-
public
class
WeekDayTest {
-
public
static
void
main(String args[]) {
-
for
(WeekDay day : WeekDay.values()) {
-
System.out.println(day + "====>"
+ day.getDay());
-
}
-
WeekDay.printDay(5
);
-
}
-
}
输出结果为:
Mon====>Monday
Tue====>Tuesday
Wed====>Wednesday
Thu====>Thursday
Fri====>Friday
Sat====>Saturday
Sun====>Sunday
Fri
3.
Java Enum
原理
Java Enum
类型的语法结构尽管和
java
类的语法不一样,应该说差别比较大。但是经过编译器编译之后产生的是一个
class
文件。该
class
文件经过反编译可以看到实际上是生成了一个类,该类继承了
java.lang.Enum<E>.
WeekDay
(javap WeekDay
命令
之后得到的内容如下
(
去掉了汇编代码
)
:
-
public
final
class
WeekDay
extends
java.lang.Enum{
-
public
static
final
WeekDay Mon;
-
public
static
final
WeekDay Tue;
-
public
static
final
WeekDay Wed;
-
public
static
final
WeekDay Thu;
-
public
分享到:
相关推荐
javaenum学习.pdf
java enum详细教程。由浅入深,包括基本语法方面..很适合新手学习。/n各位看官。绝对超值。
java enum枚举教程学习资料
主要介绍了Java Enum和String及int的相互转化示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
简单查询算法,供学习参考。 代码中描述了Enum和EnumMap类的使用。
java 枚举(enum) 详解(学习资料); java 枚举(enum) 详解(学习资料); java 枚举(enum) 详解(学习资料); java 枚举(enum) 详解(学习资料);
对java下enum的最详细介绍想详细了解enum内在的同学可以下载学习一下
Java中的Enum的使用与分析,希望对大家的学习有帮助
主要给大家介绍了关于Java的枚举enum的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
主要介绍了浅谈Java中是否直接可以使用enum进行传输,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了java中enum的用法,包括了枚举类型的基本定义及用法分析,对于学习Java有着一定的学习与借鉴价值,需要的朋友可以参考下
《java jdk 7学习笔记》是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习java时遇到的概念、操作、应用或认证考试等问题及解决方案。 《java jdk 7学习笔记》针对java se 7新功能全面改版,无论是...
帮助大家复习java基础知识其中有 hashCode 2 toString 2 finalize 2 用已学知识做出简单的房屋出租系统 3 类方法使用注意事项和细节讨论 4 main()方法 4 代码块 4 代码块使用注意事项和细节 5 单例模式 6 final...
Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 二、 Java语法基础 5 数据类型 5 运算符号 14 语句 15 函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 ...
主要介绍了Java中枚举类型的一种使用方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...
我想几乎每一个学习Java语言的人在学习枚举的时候首先的一个疑问就是“为什么不用static final字段替代?”,有这个疑问就说明你已经摸索到了枚举类型的最主要功能......
主要介绍了JAVA 枚举(enum)的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
//swtich 中可用的数据类型主要是 byte short int char enum //swtich 中的控制表达式的返回值应与 case 后的变量类型相一致 //关于数据类型 : 低精度与高精度运算会转换为高精度 // 整理的不多 只是为了加点分
20非常有用的java程序片,dom4j生产xml,java enum,for循环,java向oracle 插入百万数据,程序员必知8大排序,map的三种遍历....就是我自己平时在学习的时候遇到的问题然后在网上的找到相关解决方法。