枚举类的定义和使用

/*

  • 一、枚举类
  • 1.如何自定义枚举类
  • 2.如何使用eunm关键字来定义枚举类
  • 常用的方法 Values() ValueOf()

  • 如何让枚举类实现接口:可以让不同枚举类的对象调用被重写的抽象方法,执行的效果不一样

  • (相当于让每个对象重写抽象方法)
    */

1.然后和自定义枚举类

package meijulei;

public class TestSeason {
	public static void main(String[] args) {
		Season spring = Season.Fall;
		spring.show();
		
	}

}
//枚举类
class Season{
	//1.提供类的属性,声明为private final
	private final String seasonName;
	private final String seasonDesc;
	//2.声明为final的属性在构造器中初始化
	private Season(String seasonName,String seasonDesc) {
		this.seasonDesc = seasonDesc;
		this.seasonName = seasonName;
		
		
	}
	//3.通过公共的方法来调用属性
	public String getSeasonName() {
		return seasonName;
	}
	public String getSeasonDesc() {
		return seasonDesc;
	}
	@Override
	public String toString() {
		return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
	}
	public void show() {
		System.out.println("这是"+this.seasonName);
	}
	//4.创建枚举类的对象  (用public static final 修饰)
	public static final Season Spring = new Season("spring","春暖花开");
	public static final Season Summer = new Season("Summer","夏日炎炎");
	public static final Season Fall = new Season("Fall","秋高气爽");
	public static final Season Winter = new Season("Winter","白雪皑皑");
	
	
	
}

2.如何使用eunm关键字来定义枚举类
>常用的方法 Values() ValueOf()

  • 如何让枚举类实现接口:可以让不同枚举类的对象调用被重写的抽象方法,执行的效果不一样

  • (相当于让每个对象重写抽象方法)
public class TestSeason2 {
	public static void main(String[] args) {
		Season spring = Season.Fall;
		spring.show();
		 Season2[] seasons = Season2.values();
		 System.out.println(seasons);
		 for(int i = 0; i < seasons.length;i++) {
			 System.out.println(seasons[i]);
		 }
		 //valueOf(String name) :要求 传入的形参name是枚举类对象的名字,否则报错。
		 String str = "Spring";
		 Season2 sea = Season2.valueOf("Spring");
		 System.out.println(sea);
		 sea.show();
		 
		 Thread.State[]xc = Thread.State.values();
		 for(int i = 0; i < xc.length;i++) {
			 System.out.println(xc[i]);
		 }
		 
	}
}
interface info{
	void show();
}
//枚举类
enum Season2 implements info{
	Spring("spring","春暖花开"){
		public void show() {
			System.out.println("春天在哪里");
		}
	},
	Summer("Summer","夏日炎炎"){
		public void show() {
			System.out.println("生如夏花");
		}
	},
	Fall("Fall","秋高气爽"){
		public void show() {
			System.out.println("秋天是用来分手的季节");
		}
	},
	Winter("Winter","白雪皑皑"){
		public void show() {
			System.out.println("冬天里的一把火");
		}
	};
	private final String seasonName;
	private final String seasonDesc;
	private Season2(String seasonName,String seasonDesc) {
		this.seasonDesc = seasonDesc;
		this.seasonName = seasonName;
	}
	public String getSeasonName() {
		return seasonName;
	}
	public String getSeasonDesc() {
		return seasonDesc;
	}
	@Override
	public String toString() {
		return "Season2 [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
	}
//	public void show() {
//		System.out.println("这是"+this.seasonName);
//	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值