首页 / JAVA / java之 ------ 枚举类型
java之 ------ 枚举类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java之 ------ 枚举类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1984字,纯文字阅读大概需要3分钟。
内容图文
![java之 ------ 枚举类型](/upload/InfoBanner/zyjiaocheng/1307/e01b84a878c743fba65bee2af900658d.jpg)
枚举
一、枚举类型具体说明
简单的说。Enum一般用来表示一组同样类型的常量。
如性别、日期、月份、颜色等。对这些属性用常量的优点是显而易见的,不仅能够保证单例,且在比較的时候能够用”==”来替
换equals。JDK1.5之前没有Enum这个类型,那时候一般用接口常量来替代。
定义枚举类型时本质上就是在定义一个类别。仅仅只是非常多细节由编译器帮您完毕了。所以某些程度上,enum是一个keyword,它的作用就像是class或interface。(这就是为什么有些人找不到当中的value()方法)
二、枚举类型的用法
1)常量
在Enum出现之前,我们定义常量通常是:public static fianl....?? ? ?这种常量比較单一。而有了枚举就好的多,它能够看成是对象常量,并且还有相似集合的功能,同一时候定义多个对象常量。
如:
<span style="font-size:14px;">enum Signal { GREEN, YELLOW, RED; } </span>
用的时候:Signal s = Signal.RED;即可了
注:用这个方案使用枚举类型,RED后面的分号能够不用写
2)switch
<span style="font-size:14px;">public class TrafficLight { Signal color = Signal.RED; public void change() { //交通灯切换 switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; break; } } } </span>3)向枚举中加入新方法
<span style="font-size:14px;">public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLOW("黄色", 4) ; // 成员变量 private final String name; private final int index; // 构造方法,必须私有 private Color(String name, int index) { this.name = name; this.index = index; } public String getName() { return name; } public int getIndex() { return index; } } </span>由于是常量,所以不能让其它人能够new这个对象。也就是将这个类封装起来。不让不论什么人能够new。方法是通过将构造方法私有化即可。private Color(String name, int index)
注:假设打算自己定义自己的方法。那么必须在enum实例序列的最后加入一个分号。
也就是这里的YELLOW("黄色",4)后面必须有“ ; ”
。三、枚举的静态方法
枚举的静态方法有两个
1)values()获取枚举类型的全部枚举常量返回值为static?ElementType[]
for(UserTypeEnum userType: UserTypeEnum.values()){ <span style="white-space:pre"> </span>if(userType.getName().equalsIgnoreCase(name)){ return userType.getType(); } }
2)
valueOf
(Class<T>
enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。返回值为static?ElementType
注:然后就发现一个问题,value方法我怎么找不到,查查才发现。?values()方法是编译器插入到enum定义中的static方法。所以,当你将enum实例向上转型为父类Enum类,
values()就不可訪问了。
解决的方法:在java.lang包下一个java.lang.annotation包(凝视的意思),里面有一个ELementType类,当中就有想要找的这两个静态方法。
所以不能说
枚举类型实质上继承java.lang.Enum类。
四、 EnumSet类和EnumMap类
这两个类在java.util包中。 看看api,主要的运用应该没什么问题。
内容总结
以上是互联网集市为您收集整理的java之 ------ 枚举类型全部内容,希望文章能够帮你解决java之 ------ 枚举类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。