enum枚举类型使用

package com.test.enums;

import java.util.EnumMap;

import java.util.EnumSet;

/**

*

* @ClassName:  TestEnum

*

* @Description: 测试枚举

* @author PineTree

* @date 2015年6月4日 上午9:54:34

*

*/

public class TestEnum {

public static void main(String[] args) {

// new TestEnum().change(); // 测试普通枚举

// new TestEnum().changes(); // 测试自定义枚举

// new TestEnum().overrideMethod(); // 测试枚举中覆盖方法

// new TestEnum().interfaceColor(); // 测试枚举实现外部接口类

// 1. 遍历枚举类型

System. out .println( "......演示枚举类型的遍历 ......" );

testTraversalEnum ();

// 2. 演示 EnumMap 对象的使用

System. out .println( "......演示 EnmuMap 对象的使用和遍历 ....." );

testEnumMap ();

// 3. 演示 EnmuSet 的使用

System. out .println( "......演示 EnmuSet 对象的使用和遍历 ....." );

testEnumSet ();

}

/**

* 普通枚举

*/

public enum Color {

RED, GREEN, BLANK, YELLOW

}

/**

* 向枚举中添加新方法

*/

public enum Colors {

RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);

// 成员变量

private String name;

private int index;

// 构造方法

private Colors(String name, int index) {

this.name = name;

this.index = index;

}

// 普通方法

public static String getName(int index) {

for (Colors c : Colors.values())

if (c.getIndex() == index)

return c.name;

return null;

}

// get和set方法

public void setName(String name) {

this.name = name;

}

public String getName(){

return name;

}

public int getIndex() {

return index;

}

}

public enum OverrideMethod {

RED("红色", ‘红‘), GREEN("绿色", ‘绿‘), BLANK("白色", ‘白‘), YELLO("黄色", ‘黄‘);

private String color; // 颜色

private char c; // 单色

private OverrideMethod(String color, char c) {

this.color = color;

this.c = c;

}

// get、set方法

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

public char getC() {

return c;

}

public void setC(char c) {

this.c = c;

}

@Override

public String toString() {

return this.color + "_" + c;

}

}

/**

* 实现外部接口

*/

public enum InterfaceColor implements Behaviour{

RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);

// 成员变量

private String name;

private int index;

// 构造方法

private InterfaceColor(String name, int index) {

this.name = name;

this.index = index;

}

// 实现的接口方法

@Override

public void print() {

System.out.println(this.index +  "\t" + this.name);

}

@Override

public String getInfo() {

return name;

}

}

public enum Light {

RED(1), GREEN(2), YELLO(3);

private int nCode;

private Light(int nCode){

this.nCode = nCode;

}

@Override

public String toString() {

return String.valueOf(nCode);

}

}

/**

* 测试普通枚举

*/

public void change () {

Color c = Color.GREEN;

switch (c) {

case RED:

System.out.println("RED");

break;

case GREEN:

System.out.println("GREEN");

break;

case BLANK:

System.out.println("BLANK");

break;

case YELLOW:

System.out.println("YELLOW");

break;

default:

break;

}

}

/**

*  测试枚举中自定义方法

*/

public void changes() {

try {

System.out.println(Colors.BLANK.getName() + "\t" + Colors.BLANK.getIndex() + "\n"

+ Colors.BLANK.name + "\t" + Colors.BLANK.index + "\t" + Colors.getName(6));

} catch (Exception e) {

e.printStackTrace();

}

}

/**

*  继承枚举内部方法

*/

public void overrideMethod() {

try {

OverrideMethod om = OverrideMethod.YELLO;

System.out.println(OverrideMethod.GREEN.toString() + "\n"

+ om.getC() + "_" + om.getColor());

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 实现外部接口

*/

public void interfaceColor() {

try {

InterfaceColor ic = InterfaceColor.RED;

ic.print();

System.out.println(ic.getInfo());

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 演示枚举类型的遍历

*/

public static void testTraversalEnum() {

Light[] allLight = Light.values();

for (Light light : allLight)

System.out.println("当前灯name:" + light.name() + "\t 当前灯ordinal:" + light.ordinal() + "\t 当前灯:" + light);

}

/**

* 演示 EnumMap 的使用, EnumMap 跟 HashMap 的使用差不多,只不过 key 要是枚举类型

*/

public static void testEnumMap() {

// 1. 演示定义 EnumMap 对象, EnumMap 对象的构造函数需要参数传入 , 默认是 key 的类的类型

EnumMap<Light, String> currEnumMap = new EnumMap<>(Light.class);

currEnumMap.put(Light.RED, "红灯");

currEnumMap.put(Light.GREEN, "绿灯");

currEnumMap.put(Light.YELLO, "黄色");

// 2. 遍历对象

for (Light light : Light.values())

System.out.println("key = " + light.name() + "\t value = " + currEnumMap.get(light));

}

/**

* 演示 EnumSet 如何使用, EnumSet 是一个抽象类,获取一个类型的枚举类型内容 <BR/>可以使用 allOf 方法

*/

public static void testEnumSet() {

EnumSet<Light> currEnumSet = EnumSet.allOf(Light.class);

for (Light light : currEnumSet)

System.out.println(light.name() + "当前EnumSet数据为" + light);

}

}

时间: 2024-10-19 13:13:28

enum枚举类型使用的相关文章

enum枚举类型的定义

enum枚举类型的定义方式与某种用法 #include <iostream> using namespace std; int main() { enum TOT{ zero, one, two, three, four, five };//0,1,2,3,4,5 TOT to1; to1 = five; switch (to1) { case 0:cout << "zero\n"; break; case 1:cout << "one\n

C语言——enum枚举类型

enum是枚举类型,实际上就是定义一组值,enum定义数据类型的值只能是这一组值中的一个. 在实际生活中,很多问题都与是这样的.如人的性别,只有男女两种:一星期有七天:月份只有十二个值. 如下定义一周七天的值: #include <stdio.h> typedef enum { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }week; int main() { printf("%d %d %d %d %

开发中巧用Enum枚举类型

在实际开发中,在数据库表设计中,我们往往习惯于用一个Int类型的State字段去表示数据的状态,这个字段很方便去表示这条数据的状态,但是又不愿意去建一张这个State字段的外键表去解释状态.(这一类型表状态的字段可能还会有很多,这里只是举个例)   我们一般会把这个State字段当成一个约定,去在项目中应用(比如:0:启用,1:禁用) 在后台管理或其它地方显示Int类型对应的实际状态时,再到公共类中去写一个方法,里面用一个switch...case去返回对应的中文解释. http://www.d

Java enum枚举类型

java的枚举类型详解: 简单示例: public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 复杂示例(带自定义构造方法与类型) public enum EnumTest { FRANK("The given name of me"), LIU("The family name of me"); private String context; private String getContext(){ return this.

C语言--enum,typedef enum 枚举类型详解

原文:http://z515256164.blog.163.com/blog/static/32443029201192182854300/ 有改动 C语言详解 - 枚举类型 注:以下全部代码的执行环境为VC++ 6.0 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6

Enum枚举类型

枚举类型: 只能取特定值中的一个 使用enum关键字来定义一个类型 是java.lang.Enum类型 举例: public class TestEnum{ public enum MyColor { red, green, blue };//括号里的值相当于类里面的静态变量 public static void main(String[] args) { MyColor m = MyColor.red; switch(m) { case red: System.out.println("red

enum枚举类型 的用法

1.作为数组下标使用 enun  box{pencil, ruler}; void main() { string s[2]; s[pencil]="pencil"; s[ruler]="ruler"; } 2.对于那些只有几种可能取值的一类变量,作为枚举类型的具体实例变量只能去它的几个枚举元素值. 具体用法可参见周纯洁的C语言课本P259.

Swift 学习笔记 enum 枚举类型

异端,异端啊,我感觉这是map吧? 1 enum ATMStatus { 2 case Success(Int) 3 case Error(String) 4 } 5 6 var balance = 200 7 8 func withdraw(amount: Int) -> ATMStatus { 9 if balance >= amount { 10 balance -= amount 11 return .Success(balance) 12 } else { 13 return .Er

C#中的枚举类型(enum type)

ylbtech 原文 C#中的枚举类型(enum type) 概念 枚举类型(enum type)是具有一组命名常量的独特的值类型.在以下示例中: enum Color { Red, Green, Blue } 声明一个名为 Color 的枚举类型,该类型具有三个成员:Red.Green 和 Blue. 枚举具体是怎么声明呢?枚举声明用于声明新的枚举类型.枚举声明以关键字 enum 开始,然后定义该枚举类型的名称.可访问性.基础类型和成员.具体格式: 修饰词(new.public.protect