Java自定义枚举类

package com.guaji.exer;

/*	1. 枚举类的理解:类的对象只有有限个,确定的 ,我们称此类为枚举类
	2. 当需要定义一组常量时,强烈建议使用枚举类
	3. 如何枚举类中只有一个对象,那么可以作为单例模式的实现方式
*/
class EnumExer1{
	//枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰
	private final String SEASONNAME;
	private final String SEASIONDESC;
	//枚举类的使用 private final 修饰的属性应该在构造器中为其赋值
	private EnumExer1(String name ,String desc){
		this.SEASONNAME=name;
		this.SEASIONDESC=desc;
	}
	// 在类的内部创建枚举类的实例。声明为:public static final
	public static final EnumExer1 SPRING=new EnumExer1("春天", "春暖花开");
	public static final EnumExer1 SUMMER=new EnumExer1("夏天", "Hao");
	public static final EnumExer1 AUTUMN=new EnumExer1("秋天", "好");
	@Override
	public String toString() {
		return "EnumExer1 [SEASONNAME=" + SEASONNAME + ", SEASIONDESC=" + SEASIONDESC + "]";
	}
	

}

enum EnumExer2{
	 SPRING("春天", "春暖花开"),
	 SUMMER("夏天", "Hao"),
	 AUTUMN("秋天", "好");	
	//枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰
	private final String SEASONNAME;
	private final String SEASIONDESC;
	//枚举类的使用 private final 修饰的属性应该在构造器中为其赋值
	private EnumExer2(String name ,String desc){
		this.SEASONNAME=name;
		this.SEASIONDESC=desc;
	}
	public String getSEASONNAME() {
		return SEASONNAME;
	}
	public String getSEASIONDESC() {
		return SEASIONDESC;
	}
	

}

interface  obj{
	void show();
	
}

enum EnumExer3 implements obj{
	 SPRING("春天", "春暖花开"){
		 @Override
		public void show() {
			System.out.println("真好");
			
		}
	 },
	 SUMMER("夏天", "Hao"){
		 @Override
		public void show() {
			 System.out.println("差劲");
			
		}
	 },
	 AUTUMN("秋天", "好"){
		 @Override
		public void show() {
			 System.out.println("真差");
			
		}
	 };	
	//枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰
	private final String SEASONNAME;
	private final String SEASIONDESC;
	//枚举类的使用 private final 修饰的属性应该在构造器中为其赋值
	private EnumExer3(String name ,String desc){
		this.SEASONNAME=name;
		this.SEASIONDESC=desc;
	}
	public String getSEASONNAME() {
		return SEASONNAME;
	}
	public String getSEASIONDESC() {
		return SEASIONDESC;
	}
	
	

}


/*values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。
 	valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。  
	toString():返回当前枚举类对象常量的名称
*/

public class EnumExer{
			public static void main(String[] args) {
					EnumExer3[] values = EnumExer3.values();
					for (int i = 0; i < values.length; i++) {
						System.out.println(values[i]);
						values[i].show();
					}
					System.out.println("*****************");
					System.out.println(EnumExer2.valueOf("SPRING"));
					System.out.println(EnumExer2.SPRING);
			}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值