java中的枚举类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java中的枚举类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2343字,纯文字阅读大概需要4分钟。
内容图文
1、枚举的由来
假如有一个员工类
public class Employee {
public String id; // 编号
public String name; // 姓名
// 定义 员工角色 : 1、 BOSS 、 2 MANAGER 、3、WORKER (三选一)
//很久很久之前,没有枚举,采用int 常量代替,把员工角色定义到一个类中 可读性还可以,安全性很差 employee1.role1= 100; 造成程序错误
public int role1;
// 很久之前,人们自定义一个带有枚举功能类,采用对象来标识
public Role2 role2;
// JDK5 提供枚举 简化自定义枚举类写法
public Role3 role3;
public static void main(String[] args) {
//int常量标识不同的员工角色
Employee employee1 = new Employee();
employee1.role1 = Role1.BOSS;
//对象标识不同的员工角色
Employee employee2 = new Employee();
employee2.role2= Role2.BOSS;
//枚举来标识
Employee employee3 = new Employee();
employee3.role3= Role3.BOSS;
}
}
//int常量标识不同的员工角色
class Role1 {
public static final int BOSS = 1;
public static final int MANAGER = 2;
public static final int WORKER = 3;
}
//使用对象来标识不同的角色
class Role2{
public static final Role2 BOSS = new Role2();
public static final Role2 MANAGER = new Role2();
public static final Role2 WORKER = new Role2();
private role2(){}//私有构造器
}
// 枚举定义来标识
enum Role3 {
BOSS, MANAGER, WORKER;
// 构造器必须私有
private Role3() {}
}
2、枚举API的使用
定义一个枚举类:Hobby,比如音乐,运动,学习
enum Hobby{
MUSIC,SPORT,STUDY;
private Hobby(){}
}
根据已知的枚举对象的属性,获取其他的属性
public class EnumAPITest {
@Test
public void method_3(){
int index = 1;//已知枚举下标,获取枚举对象和名称
Hobby []hobbies = Hobby.values();//先获取所有的枚举对象数组
//获取枚举对象
Hobby hobby = hobbies[index];//根据下标找到枚举对象
System.out.println(hobby.name()); //SPORT
}
@Test
public void method_2(){
String name = "STUDY";//已知枚举名称,获取对象和下标
//通过枚举名称获得枚举对象,有两种方式
Hobby hobby = Hobby.valueOf(name);
Hobby hobby2 = Enum.valueOf(Hobby.class, name);
//有了对象就可以获取下标了
System.out.println(hobby.ordinal());//2
System.out.println(hobby2.ordinal());//2
}
@Test
public void method_1(){
Hobby hobby = Hobby.MUSIC;
//已知枚举对象,由枚举对象来获取枚举名称和下标
System.out.println(hobby.name());//MUSIC
System.out.println(hobby.ordinal());//0
}
}
3、枚举构造器有参数或枚举类中有抽象方法的情况
public class EnumTest {
public static void main(String[] args) {
Color color = Color.BLUE;
color.show();
}
}
//如果枚举构造器有参数,在枚举实例后 () 传入参数
//如果枚举有抽象方法,解决用匿名内部类 实现抽象方法
enum Color{
RED(3){
@Override
void show() {
System.out.println("hong");
}
},
BLUE(4){
@Override
void show() {
System.out.println("lan");
}
},
BLACK(5){
@Override
void show() {
System.out.println("hei");
}
};
private Color(int x){};
abstract void show();
}
以上很多都是依据当时学习时老师的范例,不管怎么说,希望对大家有所帮助!!!
原文:http://www.cnblogs.com/zhuangwf/p/5150672.html
内容总结
以上是互联网集市为您收集整理的java中的枚举类全部内容,希望文章能够帮你解决java中的枚举类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。