菜鸟笔记
提升您的技术认知

java枚举类的定义和使用

枚举类的对象是有限个

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

1 如何定义    

cccccccc

 1 私有化类的构造器。

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

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

4 创建枚举类的对象

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

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

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

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

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

常用方法:https://blog.csdn.net/kdc18333608478/article/details/72845587

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

代码

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+"]";
		
	}
}
}



 

方法一结果 

 方法二结果