这篇文章将为大家详细讲解有关java中枚举类型定义和重写枚举的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
什么是枚举类型
枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。
而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。
简单的枚举类型定义
假如你希望创建一个颜色库,你可以这样定义枚举类型
enum Color {red, green, yellow, black};
然后你就可以使用它
Color T = Color.red;
if (T == Color.red)
System.out.println("i am red");
switch(T) {
case red:
System.out.println("i am red");
break
}
定制枚举类型
在C/C++中,我们可以这样使用枚举变量
enum color {red,green};
enum color a = 1;// a is green
在Java中定义枚举类型的值
enum color {
red(1),green(2);
private final int number;
color(int i) {
this.number = i;
}
public getValue() {
return this.number;
}
}
然后使用 T.getValue() 便可获取绑定的值
重写枚举的方法
枚举类给我们提供的方法有,具体可以查看Enum.java
name, toString, valueOf //获取名字
equals //比较
ordinal //获取位置
实现接口
所有的枚举都继承自java.lang.Enum类。
由于Java 不支持多继承,所以枚举对象不能再继承其他类,但是可以实现接口
Test
enum number {
zero(0),one(1),two(2);
int n;
number(int i) {
this.n = i;
}
public int getValue(){
return this.n;
}
}
interface People_State {
String getState();
State_Enum ChangeState();
}
enum State_Enum implements People_State {
normal("正常"), stop("停止");
private final String state;
State_Enum(String s) {
this.state = s;
}
public String toString() {
return state;
}
@Override
public String getState() {
return state;
}
@Override
public State_Enum ChangeState() {
if (this == normal)
return stop;
else
return normal;
}
}
public class Test_Enum {
public static void main(String[] args) {
number z = number.zero;
State_Enum state = State_Enum.normal;
System.out.println(z.getValue());
System.out.println(z);
System.out.println(number.one);
switch (z) {
case zero:
System.out.println(0);
break;
case one:
System.out.println(1);
break;
case two:
System.out.println("2");
break;
}
//equals
if (z.equals(number.one)) {
System.out.println("equal!");
} else {
System.out.println("unequal");
}
//valueOf
System.out.println(number.valueOf("zero"));
//ordinal
System.out.println(z.ordinal()); //the index of values
System.out.println(state.toString());
state = state.ChangeState();
System.out.println(state.getState());
}
}
Output
0
zero
one
0
unequal
zero
0
正常
停止
关于“java中枚举类型定义和重写枚举的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。