Java枚举类型

概要:

Java枚举类型

| |目录

示例

package net.xsoftlab.baike;

public class TestEnumeration {
	static enum RESULT {
		YES, NO, UNKOWN,
	};

	static enum Type {
		MANAGER("经理", 5000), ASSISTANT("助理", 3000), WORKER("员工", 1000);
		private String name;// 只能在枚举值的后面
		private double pay;

		Type(String name, double pay) {// 带参数的构造方法
			this.name = name;
			this.pay = pay;
		}
	}

	enum Person {
		CHINESE("中国人") {
			@Override
			public String toString() {// 返回对应值
				return "这是个中国人";
			}
		},
		AMERICAN("美国人"), ENGLISHMAN("英国人") {// 返回对应值
			@Override
			public String toString() {
				return "这是个英国人";
			}
		},
		OTHERS {
			@Override
			public String toString() {// 返回对应值
				return "这是个其他国家的人";
			}
		};
		private String value = null; // 枚举值的value属性,只能声明在枚举值的后面

		Person() {// 默认构造方法
			value = "其他人";
		}

		Person(String value) {// 带参数的构造方法
			this.value = value;
		}

		public String getValue() {// 获得value值
			return this.value;
		}
	}

	static class Human {// 创建静态内部类
		public Human(String humanName, Type type) {// 带参数构造方法
			this.humanName = humanName;
			this.type = type;
		}

		private String humanName;// 人员名称
		private Type type;// 人员类型

		public String getHumanName() {
			return humanName;
		}

		public void setHumanName(String humanName) {
			this.humanName = humanName;
		}

		public Type getType() {
			return type;
		}

		public void setType(Type type) {
			this.type = type;
		}
	}

	public static void displayResult() {// 操作RESULT枚举
		System.out.printf("RESULT.YES.toString():	%s %n", RESULT.YES.toString());// 返回枚举变量的名称
		System.out.printf("RESULT.YES.ordinal():	%s %n", RESULT.YES.ordinal());// 返回枚举位置
		System.out.printf("RESULT.YES.getClass():	%s %n", RESULT.YES.getClass());// 返回枚举变量的类信息
		System.out.println("遍历Set枚举的元素");
		for (RESULT result : RESULT.values()) {// 循环遍历枚举变量
			System.out.printf("%s,	", result);
		}
		switch (RESULT.YES) {// 进行枚举判断
		case YES:
			System.out.println("显示结果:" + RESULT.YES);
			break;
		case NO:
			System.out.printf("显示结果:" + RESULT.YES);
			break;
		default:
			System.out.println("未知!");
		}
	}

	public static void displayType() {// 操作Type枚举
		Human human1 = new Human("Susan", Type.MANAGER);// 实例化对象并实始化
		Human human2 = new Human("Lingda", Type.ASSISTANT);
		Human human3 = new Human("Lisa", Type.WORKER);
		System.out.printf("姓名:%1$s,	职业%2$s,	薪水:%3$s %n", human1.getHumanName(), human1.getType().name,
				human1.getType().pay);
		System.out.printf("姓名:%1$s,	职业%2$s,	薪水:%3$s %n", human2.getHumanName(), human2.getType().name,
				human2.getType().pay);
		System.out.printf("姓名:%1$s,	职业%2$s,	薪水:%3$s %n", human3.getHumanName(), human3.getType().name,
				human3.getType().pay);
	}

	public static void displayPerson() {// 操作Person枚举
		Person person = Person.CHINESE;
		System.out.printf("person.toString():%s%n", person);// CHINESE枚举值覆盖toString()方法
		person = Person.ENGLISHMAN;//
		System.out.printf("person.toString():%s%n", person);// ENGLISHMAN枚举值覆盖toString()方法
		person = Person.OTHERS;
		System.out.printf("调用getValue():%s%n", person.getValue());// 调用枚举方法
	}

	public static void main(String[] args) {// java程序主入口处
		System.out.println("1.显示RESULT枚举信息");
		displayResult();// 调用方法显示RESULT枚举信息
		System.out.println("2.显示Type枚举信息");
		displayType();// 调用方法显示Type枚举信息
		System.out.println("3.显示Person枚举信息");
		displayPerson();// 调用方法显示Person枚举信息
	}
}


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
  • 全部评论(0)
资料加载中...
已关注 , 取消