首页 / JAVA / Java-枚举(Enum)
Java-枚举(Enum)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java-枚举(Enum),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1922字,纯文字阅读大概需要3分钟。
内容图文
1.枚举概述
枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常熟。当一个变量有几种固定可能的取值时,就可以将其定义为枚举类型。
1.1 声明枚举
Java中枚举是一个特殊的类,使用enum关键字来定义,常量之间使用逗号‘,‘来分割。
可定义枚举名称、可访问性基础类型和成员等,声明格式如下:
enum-modifiers enum enumname:enum-base {
enum-body,
}
- enum-modifiers 枚举可访问性,包含public,private,internal (同一应用程序集内部(单独的项目,而不是整个解决方案)
- enumname 枚举名称
- enum-base 枚举的基础类型 (默认为int)
- enum-body 枚举的成员(枚举类型的命名常数)
注:任意两个枚举成员不能具有相同的名称,且它的常数值必须在该枚举的基础类型的范围之内,多个枚举成员之间使用逗号分隔。
2.枚举类
如1.1所述,Java中的枚举为特殊的类,均继承自java.lang.Enum类。每个枚举类型成员可看作为一个Enum类的实例,默认被final,public,static修饰,使用枚举类型成员时直接使用枚举名称调用成员即可。
枚举实例常调用的Enum类方法如下:
一些具体用法:
public class EnumTest {
public static void main(String[] args){
System.out.println(SexEnum.valueOf("male").ordinal());
System.out.println(SexEnum.values()[0].ordinal());
}
}
enum SexEnum{
male,female;
}
3.为枚举添加方法
枚举常量可以有自己的方法,此时需注意:
需在枚举实例的最后一个成员后添加分号,且必须先定义枚举实例。
eg.创建WeekDay枚举
enum WeekDay{
Mon("Monday"),Tue("Tuesday"),Wed("Wednesday"),Thu("Thusday"),
Fri("Friday"),Sat("Saturday"),Sun("Sunday");
private String day;
WeekDay(String day) {
this.day = day;
}
public static String getDay(int i){
switch(i){
case 1:
return WeekDay.Mon.day;
case 2:
return WeekDay.Tue.day;
default:
System.out.println("Wrong Number!");
return null;
}
}
//重写了父类的方法
@Override
public String toString() {
return day;
}
}
注:若枚举类中含抽象方法,则需在枚举类中的每个对象都将其实现
enum SexEnum{
male{
public String getSex(){
return("Male");
}
},
female{
public String getSex(){
return("Female");
}
};
public abstract String getSex();
}
4.EnumMap与EnumSet
4.1 EnumMap类
EnumMap 是专门为枚举类型量身定做的 Map 实现。虽然使用其他的 Map(如 HashMap)实现也能完成枚举类型实例到值的映射,但是使用 EnumMap 会更加高效。
定义方法:Map<SexEnum, Integer> map1 = new EnumMap<SexEnum, Integer>(SexEnum.class);
4.2 EnumSet类
EnumSet 是枚举类型的高性能 Set 实现,它要求放入它的枚举常量必须属于同一枚举类型。
EnumSet 提供了许多工厂方法以便于初始化,如下所示
定义方法:
EnumSet\<SexEnum> set = EnumSet.of(SexEnum.female);
Set\<SexEnum> set1 = EnumSet.complementOf(set);
原文:https://www.cnblogs.com/jingqz/p/15306166.html
内容总结
以上是互联网集市为您收集整理的Java-枚举(Enum)全部内容,希望文章能够帮你解决Java-枚举(Enum)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。