Enum用法

[b][color=red]开发者博客:[url]http://www.developsearch.com[/url][/color][/b]

一、关于Java Enum:
Enum一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。
对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用”==”来替换equals。是一种好的习惯。
JDK1.5之前没有Enum这个类型,那时候一般用接口常量来替代。有了JavaEnum之后,可以更贴近的表示这种常量。

二、用法
public enum DictType {
//用户名称
USER_SIMPLEINFO_NAME,

//机构名称
ORG_SIMPLEINFO_NAME,

//班级名称;
CLASS_NAME
}

枚举对象里面的值都必须是唯一的。

可以通过Enum类型名直接引用该常量,如DictType.USER_SIMPLEINFO_NAME

三、实例
public enum WeekDay {

Mon("Monday"),
Tue("Tuesday"),
Wed("Wednesday"),
Thu("Thursday"),
Fri("Friday"),
Sat("Saturday"),
Sun("Sunday");

private final String day;

private WeekDay(String day) {
this.day = day;
}

public static void printDay(int i){
switch(i){
case 1: System.out.println(WeekDay.Mon); break;
case 2: System.out.println(WeekDay.Tue);break;
case 3: System.out.println(WeekDay.Wed);break;
case 4: System.out.println(WeekDay.Thu);break;
case 5: System.out.println(WeekDay.Fri);break;
case 6: System.out.println(WeekDay.Sat);break;
case 7: System.out.println(WeekDay.Sun);break;
default:System.out.println("wrong number!");
}
}

public String getDay() {
return day;
}

}


public class WeekDayTest {
public static void main(String args[]) {
for (WeekDay day : WeekDay.values()) {
System.out.println(day + "====>" + day.getDay());
}
WeekDay.printDay(5);
}
}

输出结果为:
Mon====>Monday
Tue====>Tuesday
Wed====>Wednesday
Thu====>Thursday
Fri====>Friday
Sat====>Saturday
Sun====>Sunday
Fri

在不同的编程语言中,`enum`(枚举)的使用方法有所不同,以下是几种常见编程语言中`enum`的使用介绍: ### C语言 在C语言中,`enum`是一个关键字,用于定义枚举数据类型,它是预处理指令`#define`的替代。枚举数据类型描述的是一组整型值的集合,在编译阶段将名字替换成对应的值。示例如下: ```c #include <stdio.h> // 定义一个枚举类型 enum game {win, lose, tie}; int main() { // 使用枚举常量 enum game result = win; if (result == win) { printf("You win!\n"); } return 0; } ``` 在这个例子中,`win`的值默认是0,`lose`的值是1,`tie`的值是2 [^2][^3]。 ### C++ C++中`enum`的使用和C语言类似,不过有更多的灵活性。示例如下: ```cpp #include <iostream> // 定义一个枚举类型 enum game {win, lose, tie}; int main() { // 使用枚举常量 game result = win; if (result == win) { std::cout << "You win!" << std::endl; } return 0; } ``` 同样,`win`的值默认是0,`lose`的值是1,`tie`的值是2。也可以手动指定枚举常量的值,例如: ```cpp #include <iostream> // 定义一个枚举类型,手动指定值 enum weekday {mon = 1, tue, wed, thu, fri, sat, sun}; int main() { // 使用枚举常量 weekday today = wed; std::cout << "Today is the " << today << "th day of the week." << std::endl; return 0; } ``` 这里`mon`的值是1,`tue`的值是2,以此类推 [^3]。 ### Java 在Java中,枚举是一种特殊的类。可以在枚举中定义构造方法、成员变量和方法等。示例如下: ```java // 定义一个枚举类 enum SeasonEnum { SPRING("Spring", "Warm"), SUMMER("Summer", "Hot"); private String name; private String desc; SeasonEnum(String name, String desc) { this.name = name; this.desc = desc; } public String getName() { return name; } public String getDesc() { return desc; } // 重写toString方法 @Override public String toString() { switch (this) { case SPRING: return SPRING.getName() + "\t" + SPRING.getDesc(); case SUMMER: return SUMMER.getName() + "\t" + SUMMER.getDesc(); default: return "unknow enum obj"; } } } public class Main { public static void main(String[] args) { // 使用枚举常量 SeasonEnum season = SeasonEnum.SPRING; System.out.println(season); // 使用values()方法遍历枚举值 SeasonEnum[] values = SeasonEnum.values(); for (SeasonEnum value : values) { System.out.println(value.getName()); } } } ``` 在这个例子中,`SeasonEnum`是一个枚举类,包含两个枚举常量`SPRING`和`SUMMER`。重写了`toString`方法以获得更多信息,还使用了`values()`方法来遍历所有枚举值 [^4]。 ### 通用使用场景 在程序中使用`enum`设置常量时,可以通过`枚举类型名.常量名`的方式来引用常量。例如在Java中,使用`SeasonEnum.SPRING`;在C和C++中,使用`enum game win`这样的形式 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值