Diario de aprendizaje de JAVA: enumeración (1)

Hoy estoy estudiando enumeración

Contenido principal de hoy:

1.什么是枚举
2.枚举对象的声明与使用
3.在switch中如何使用枚举

enumerar:

	可以产生若干个某个类型的有序的实例,并能保证该实例的数量的一种数据结构、或者说,一种新的数据类型

Declaración y uso de objetos de enumeración:

	声明枚举,将原本class的位置上的文字换为enum,然后原本类名的地方就是枚举的名字
  	public enum Gender
  	{
  		里面传入你想要使用的实例,中间用逗号隔开
  		MALE,FAMALE;这里分号可有可无
  	}

Tipo de enumeración:

	java.lang.Enum是所有枚举类的父类
		values()方法将枚举中所有元素返回成一个枚举数组
		valueOf()方法可以指定得到枚举中的一个元素
		name()可以得到枚举中的元素的昵称返回是String类型
		ordinal()可以得到当前调用此方法的枚举对象在枚举中的序号

Aquí hay un ejemplo para aprender a usar la enumeración en switch:
Season (enumeración, la enumeración en este ejemplo):

package LessonForEnum01;
public enum Season 
{
    
    
	SPRING,SUMMER,AUTUMN,WINTER;
}

TestSeason (la clase que proporciona métodos en este ejemplo):

package LessonForEnum01;

public class TestSeason
{
    
    
	//不使用枚举
	public static String getSeason(String s)
	{
    
    
		String msg;
		
		if (s.equalsIgnoreCase("spring"))
		{
    
    
			msg =  "------SPRING IS COMING------";
		}else if (s.equalsIgnoreCase("summer"))
			{
    
    
				msg = "------SUMMER IS COMING------";
			}else if (s.equalsIgnoreCase("autumn"))
				{
    
    
					msg = "------AUTUMN IS COMING------"; 
				}else if (s.equalsIgnoreCase("winter"))
					{
    
    
						msg = "------WINTER IS COMING------";
					}else 
						{
    
    
							msg = "NULL";
						}
		
		return msg;
	}
	
	//使用枚举
	public static String getSeasonByEnum(Season s)
	{
    
    
		String msg;
		
		if (s.name().equals("SPRING"))//枚举对象s调用name()方法获取枚举里的实例拿出来用equals()方法进行比对
		{
    
    
			msg =  "------SPRING IS COMING------";
		}else if (s.name().equals("SUMMER"))
			{
    
    
				msg = "------SUMMER IS COMING------";
			}else if (s.name().equals("AUTUMN"))
				{
    
    
					msg = "------AUTUMN IS COMING------"; 
				}else if (s.name().equals("WINTER"))
					{
    
    
						msg = "------WINTER IS COMING------";
					}else 
						{
    
    
							msg = "NULL";
						}
		
		return msg;
	}
	
	public static String getSeasonBySwitch(Season s)
	{
    
    
		switch (s)
		{
    
    
			case SPRING:
				return "------SPRING IS COMING------";
				
			case SUMMER:
				return "------SUMMER IS COMING------";
				
			case AUTUMN:
				return "------AUTUMN IS COMING------";
				
			case WINTER:
				return "------WINTER IS COMING------";
				
			default:
				return "NULL";
		}
	}
}

Prueba (prueba funcional):

package LessonForEnum01;

public class Test 
{
    
    
	public static void main(String[] args) 
	{
    
    
		//枚举限定了我们传入方法的值
		String massage = TestSeason.getSeasonByEnum(Season.SUMMER);
		System.out.println(massage);
		
		System.out.println("---------------------");
		//声明变量
		//枚举不能实例化例如 Season s1 = new Season();枚举没有构造方法,所以不能
		//且只能选取枚举中的有效实例为变量赋值
		Season s1 = Season.SPRING;
		System.out.println(s1);
		
		System.out.println("---------------------");
		System.out.println("value()方法");
		//values()方法,将枚举中所有实例返回成一个枚举数组
		Season[] s2 = Season.values();
		for (Season s:s2)
		{
    
    
			//ordinal()方法是得到枚举中的元素的序号从0开始的
			System.out.println("序号"+(s.ordinal()+1)+" 的实例名称为:"+s.name());
		}
		
		System.out.println("---------------------");
		System.out.println("valueOf()方法");
		
		//valueOf()方法
		
		Season s3 = Season.valueOf("WINTER");
		System.out.println(s3.name()+"是第"+(s3.ordinal()+1)+"个元素");
		
		System.out.println("---------------------");
		//switch中使用枚举
		String str1 = TestSeason.getSeasonBySwitch(Season.SPRING);
		System.out.println(str1);
		
	}

}

Resultados generales de la operación:

------SUMMER IS COMING------
---------------------
SPRING
---------------------
value()方法
序号1 的实例名称为:SPRING
序号2 的实例名称为:SUMMER
序号3 的实例名称为:AUTUMN
序号4 的实例名称为:WINTER
---------------------
valueOf()方法
WINTER是第4个元素
---------------------
------SPRING IS COMING------

部分文字来源于:
咕嘟咖啡杨海滨老师 — 《java编程语言高级特性》
在这里十分感谢老师能够给我带来学习的激情.

2020.10.10
puedo reimprimir mi diario de estudio, pero por favor indique la fuente, gracias.
completar

Supongo que te gusta

Origin blog.csdn.net/SIESTA030/article/details/108983553
Recomendado
Clasificación