JAVA学習日記:列挙(1)

今日は列挙を勉強しています

今日のメインコンテンツ:

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

列挙する:

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

列挙オブジェクトの宣言と使用:

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

列挙型:

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

スイッチで列挙を使用する方法を学習するために、例に従ってみましょう。
シーズン(列挙、この例では列挙):

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

TestSeason(この例でメソッドを提供するクラス):

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

テスト(機能テスト):

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);
		
	}

}

全体的な操作結果:

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

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

2020.10.10
は私の研究日記を転載することができますが、出典を示してください、ありがとう。
コンプリート

おすすめ

転載: blog.csdn.net/SIESTA030/article/details/108983553