hoge66的专栏

-----------------------看到专栏,偷着笑!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

java 基础(枚举类)

Posted on 2017-01-22 18:09  hehoge  阅读(195)  评论(0编辑  收藏  举报

1、枚举类也是一个类,也可以有属性,等等:

public enum SeasonEnum{
	SPRING,
	SUMMER,
	FALL,
	WINTER;
}

 这个是没有其他属性的。

package com.creditharmony.adapter.testCase.test;

public class EnumTest {
	public void judge(SeasonEnum s) {
		switch (s) {
		case SPRING:
			System.out.println("春天");
			break;
		case SUMMER:
			System.out.println("夏天");
			break;
		case FALL:
			System.out.println("秋天");
			break;
		case WINTER:
			System.out.println("冬天");
			break;
		default:
			break;
		}
	}
 
	public static void main(String[] args) {
		for (SeasonEnum	s : SeasonEnum.values()) {
			System.out.println(s);
		}
		new EnumTest().judge(SeasonEnum.FALL);
	}
}

 进一步修改枚举代码:

package com.creditharmony.adapter.testCase.test;

public enum Gender {
	MALE, FEMALE;
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		switch (this) {
		case MALE:
			if ("男".equals(name)) {
				this.name = name;
			} else {
				System.out.println("参数错误,name:" + name);
				return;
			}
			break;
		case FEMALE:
			if ("女".equals(name)) {
				this.name = name;
			} else {
				System.out.println("参数错误,name:" + name);
				return;
			}
			break;
		default:
			break;
		}
	}
	
}

 上面的枚举中没有为各项指定初始值,而且属性可修改,其实枚举属性不应该被修改,所以应该用private final 来修饰。

public enum Gender {
	MALE("男"), FEMALE("女");
	// 枚举类的构造器只能用private修饰
	private Gender(String name){
		this.name=name;
	}
	private String name;
	public String getName() {
		return name;
	}
}

 

	public static void main(String[] args) {
		System.out.println(Gender.FEMALE.getName());
		 
	}

 输出结果:女。