java枚举类的定义和使用

开始时间 2018年8月11日11:04:35

结束时间 2018年8月11日12:30:37

累计+1小时

枚举类的对象是有限个

对象个数 一个可以看做单例模式的实现 多个 为枚举类

1 如何定义

cccccccc

1 私有化类的构造器。

2 成员变量如果声明为final。要在构造器中初始化,不允许被修改、

3 通过公共方法 调用属性。

4 创建枚举类的对象

单例模式中 ,通过公共方法调用。 也可以通过类来调用。

要用final修饰!!!! 声明为 public static final

使用enum关键字来定义枚举类

1 定义时必须先声明 (把final关键字放在最上面);

2

用枚举声明之后 图中蓝色部分可以省略 被改之后原来用;分割 应该为逗号, 最后一个用; 即可

常用方法:

可以让不同的枚举类对象调用被抽象的抽象方法,执行的效果不同。(相当于每一个对象重写抽象方法)

代码

package 面向对象;

public class TestSeason {
	public static void main(String[] args) {
		Season spring=Season.spring;
		System.out.println(spring);
		spring.show();
		System.out.println(spring.getSeasonName());
		System.out.println();
		
//		方法一
//		Season[] seasons =Season.values();
//		for (int i = 0; i < seasons.length; i++) {
//			System.out.println(seasons[i]);
//		}
//		方法2  要求传入的形参是枚举类对象的名字
		String str = "spring";
		Season sea = Season.valueOf(str);
		System.out.println(sea);
		System.out.println();
		
		
		
	}
	
	interface Info
	{
		void show();
	}
enum Season implements Info
{
	spring ("spring", "chunnuanhuakai")
	{
		
		public void show() {
			System.out.println("i love you");
			
		}
		
	},
	summer("summer","re")
	{
		public void show(){
			System.out.println("sorry");
		}
	};
	public final String seasonName;
	public final String seasonDesc;
	private Season(String seasonName,String seasonDesc)
	{
		this.seasonDesc=seasonName;
		this.seasonName=seasonName;
		
	}
	public String getSeasonName()
	{
		return seasonName;
	}
	public String toString()
	{
		return "Season[ name="+seasonName+", seasonDesc="+seasonDesc+"]";
		
	}
}
}

方法一结果

方法二结果

2018年8月11日12:31:07 于易动

好饿啊emmm 爱的那个女孩 啥时候出现啊QAQ

经验分享 程序员 微信小程序 职场和发展