您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

什么是java枚举

2025/3/12 5:16:29发布50次查看
什么是java枚举?
java 枚举的定义与用法
一、枚举的定义:
       枚举是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁,安全性以及便捷性。创建枚举类型要使用enum关键字,隐含了所创建的类型都是java.lang.enum类的子类(java.lang.enum是一个抽象类)。枚举类型符合通用模式class enum271447d3c75ca4f8ce424bd25b75b2af>,而e表示枚举类型的名称。枚举类型的每一个值都映射到protected enum(string name,int ordinal)构造函数中,在这里,每个值的名称都转换成一个字符串,并且序数设置表示了此设置被创建的顺序。
二、枚举的使用:
    创建一个枚举类:enumtest 
public enum enumtest {//星期一,星期二,星期三,星期四,星期五,星期六mon(1), tue(2),wed(3),thu(4),fri(5),sat(6){public boolean isrest(){return true;}},//星期日sun(0){public boolean isrest(){return true;}};private int value;private enumtest(int value){this.value=value;}public int getvalue(){return value;}public boolean isrest(){return false;}}
使用enumtest枚举类:
public class enummain {public static void main(string[] args) {for (enumtest enumtest : enumtest.values()) {system.out.println(enumtest + ":" + enumtest.getvalue());}system.out.println("---------------我是分割线------------");enumtest test = enumtest.sat;switch (test) {case mon:system.out.println("今天是星期一");break;case tue:system.out.println("今天是星期二");break;case wed:system.out.println("今天是星期三");break;case thu:system.out.println("今天是星期四");break;case fri:system.out.println("今天是星期五");break;case sat:system.out.println("今天是星期六");break;case sun:system.out.println("今天是星期日");break;default:system.out.println(test);break;}}}
结果:
mon:1tue:2wed:3thu:4fri:5sat:6sun:0
---------------我是分割线------------
今天是星期六
三、枚举优缺点:
在枚举出现之前,如果想要表示一组特定的离散值,往往使用一些常量。例如:
public class entity { public static final int video = 1;//视频 public static final int audio = 2;//音频 public static final int text = 3;//文字 public static final int image = 4;//图片 private int id; private int type; public int getid() { return id; } public void setid(int id) { this.id = id; } public int gettype() { return type; } public void settype(int type) { this.type = type; }
四、使用这个常量的方法的缺点:
      1、代码可读性差,易用性差,由于settype()方法的参数是int型的,
      2、类型不安全。在用户去调用的时候,必须保证类型完全一致,同时取值范围也要正确。像settype(-1);是合法的,但是不是合理的,今后会为程序带来种种问题。
       3、耦合性高,扩展性差。假如,因为某些原因,需要修改entity类中常量的值,那么需要改的时候,修改漏了,那可不是开玩笑的。
枚举就是为了这样的问题而诞生的。它们给出了将一个任意项同另一项比较的能力。
以上就是什么是java枚举的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product