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