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编程枚举类型定义和重写枚举的方法的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Java编程long数据类型的使用问题、java编程基础之模仿用户登录代码分享等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!
相关文章
Java Swing组件单选框JRadioButton用法示例
这篇文章主要介绍了Java Swing组件单选框JRadioButton用法,结合具体实例形式分析了Swing单选框JRadioButton的使用方法及相关操作注意事项,需要的朋友可以参考下2017-11-11
feign开启日志Logger.Level feignLoggerLevel()中Level爆红的解决
这篇文章主要介绍了feign开启日志Logger.Level feignLoggerLevel()中Level爆红的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06
springboot使用logback文件查看错误日志过程详解
这篇文章主要介绍了springboot使用logback文件查看错误日志过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-09-09
springboot多数据源配合docker部署mysql主从实现读写分离效果
这篇文章主要介绍了springboot多数据源配合docker部署mysql主从实现读写分离,通过使用docker获取mysql镜像,具体内容详情跟随小编一起看看吧2021-09-09
java面向对象:API(接口)与集合(ArrayList)
这篇文章主要介绍了Java语言面向对象的API与集合,还是十分不错的,这里给大家分享下,需要的朋友可以参考,希望能够给你带来帮助2021-08-08
关于Spring MVC框架中拦截器Interceptor的使用解读
这篇文章主要介绍了关于Spring MVC框架中拦截器Interceptor的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-07-07


最新评论