javaenum重写_java编程枚举类型那些事!枚举类型定义和重
写枚举的⽅法
什么是枚举类型
枚举类型(Enumerated Type) 很早就出现在编程语⾔中,它被⽤来将⼀组类似的值包含到⼀种类型当中。
⽽这种枚举类型的名称则会被定义成独⼀⽆⼆的类型描述符,在这⼀点上和常量的定义相似。不过相⽐较常量类型,枚举类型可以为申明的变量提供更⼤的取值范围。
简单的枚举类型定义
假如你希望创建⼀个颜⾊库,你可以这样定义枚举类型
enum Color {red, green, yellow, black};
然后你就可以使⽤它
Color T = d;
if (T == d)
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) {java valueof
this.state = s;
}
public String toString() {
return state;
}
@Override
public String getState() {
}
@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 = ;
State_Enum state = al; System.out.Value()); System.out.println(z);
System.out.);
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.)) {
System.out.println("equal!");
} else {
System.out.println("unequal");
}
System.out.println(number.valueOf("zero"));
//ordinal
System.out.dinal()); //the index of values
System.out.String());
state = state.ChangeState();
System.out.State());
}
}
Output
zero
one
unequal
zero
正常
停⽌
总结
以上就是本⽂关于java编程枚举类型定义和重写枚举的⽅法的全部内容,希望对⼤家有所帮助。感兴趣的朋友可以继续参阅本站:Java编程long数据类型的使⽤问题、java编程基础之模仿⽤户登录代码分享等,有什么问题可以随时留⾔,⼩编会及时回复⼤家的。感谢朋友们对本站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。