java怎么声明枚举类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么声明枚举类型相关的知识,希望对你有一定的参考价值。
这里我的一点小笔记你看看吧:看不明白就找找相关书籍.※枚举(enum):
1.Java 5 新增,是类类型,但不能使用new
不能继承其他类,也不能作为超类,即不能扩展.但隐式继承自java.lang.Enum类,可以实现接口.
2.枚举包括两个预定义方法:
public static enum-type[] values();
public static enum-type valueOf(String st); 用于for-each循环遍历枚举常量.
且可以用”==”来判断两个枚举常量是否相等.
从Enum继承而来三个方法:
final int ordinal() ----返回常量顺序值
final int compareTo(enum-Type e) -----同一枚举中比较顺序值
final Boolean equals(enum-type e) -----同一枚举中是否相等,相当于”==”
3.在switch表达示中case语句不需也不能加入枚举的类型,否则会出错.
4.枚举是类类型,可以定义构造函数,且可以重载,同样也可定义其他的实例方法和变量,这些每一个枚举常量都有自己的一个副本.甚至可以定义静态的成员.可以实现接口.
如:public enum Answer implements DoAnswer
Perfect(10),Good(8),Common(5),Bad(2),Terrible;//枚举常量,相当于public static Answer类型
public static int type=1; //定义一个静态成员
private int degree; //定义一个实例成员变量
private Answer() //定义一个不带参数的构造函数,注只能为private的,默认也一样
degree=-1;
private Answer(int d) //定义一个带参数的重载构造函数
degree=d;
public String getProblem() //实现接口方法
return DoAnswer.PROBLEM;
public int getDegree() //定义一个实例成员函数
return degree;
public Answer getAnswer() //定义一个返回自身的成员函数,每一个常量都有自己的副本
return this;
参考技术A Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。
2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。
3.Enum默认实现了java.lang.Comparable接口。
4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.
5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。
6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。
7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。 参考技术B public enum Test //enum相当于class的位置,Test为类名
ONE, TWO, THREE //枚举的常量名,使用时用Test.ONE表示
参考技术C java的枚举类不用声明
public enum a()
红色,黑色
用的时候直接 a.红色就可以了
JAVA枚举类型
枚举类型
- 枚举类型使用一组常量值来表示特定的数据集合,该集合中数据的数目确定(通常较少),且这些数据只能取预先定义的值。
- Java枚举类型均自动继承java.lang.Enum类(该类继承了Object类)。
声明枚举类型:
[public] enum 枚举类型名称{
枚举对象1,枚举对象2,…,枚举对象n ;
}
eg: public enum Color{
RED,GREEN,BLUE;
}
获取枚举对象的两种方法:
方法一:取得单个枚举对象
枚举.对象名
方法二:取得全部枚举对象
枚举.values()
注意:枚举.values()返回的是一个对象数组, 可以通过遍历该对象数组获取所有枚举对象。
以上是关于java怎么声明枚举类型的主要内容,如果未能解决你的问题,请参考以下文章