枚举类了解及练习
工作中遇到一个类,发现使用到了枚举,这次也顺带着了解一下。很多东西虽然自己知道但是没有再工作中遇到,也没有去想什么地方能遇到。后面也会对这类知识点在工作中的使用专门写一些博客。
枚举类型比较特殊,算是Java中一个比较特殊的类。下面就列一个简单的例子。
package enumtrain;
/**
* ClothesSize.java
* Description: 衣服大小枚举类
*
* @author Peng Shiquan
* @date 2019-07-13
*/
public enum ClothesSize {
/**
* 枚举类,利用构造方法传参。这里的四个码号其实相当于四个实例
*/
S("S号"), L("L号"), XL("XL号"), XXL("XXL号");
String size;
public String getSize() {
return size;
}
/**
* Description: 构造方法,将枚举项的值赋值给枚举类的普通属性,再通过公共方法获取
*
* @param size
* @return
* @Author: Peng Shiquan
* @Date: 2019-07-13
*/
ClothesSize(String size) {
this.size = size;
}
}
上面就是一个简单的枚举类的例子。可以看到其实枚举相当于Java中的常量,类似下面代码。
public static final String ABA = "气温";
但是枚举类要丰富的很多,里面可以写一些方法和变量,相对于上面的常量的定义要灵活的多。下面也给个例子如何使用。
package train;
import enumtrain.ClothesSize;
import java.util.Scanner;
/**
* ClothesSizeTest.java
* Description: 枚举类测试方法
*
* @author Peng Shiquan
* @date 2020/6/30
*/
public class ClothesSizeTest {
public static void main(String[] args) {
/**
* 打印枚举值的值和name
*/
ClothesSize clothesSize = ClothesSize.XL;
System.err.println("根据构造方法获取枚举类型的值:" + clothesSize.getSize());
System.err.println("直接获取枚举类型的name" + clothesSize.toString());
/**
* 获取全部的枚举值
*/
ClothesSize[] clothesSizes = ClothesSize.values();
for (ClothesSize clothesSize1 : clothesSizes) {
System.err.println("枚举值name为:" + clothesSize1.toString() + ",枚举值value为:" + clothesSize1.getSize());
}
/**
* 根据键盘的输入取对应的枚举值
*/
Scanner scanner = new Scanner(System.in);
String input = scanner.next().toUpperCase();
ClothesSize clothesSize1 = Enum.valueOf(ClothesSize.class, input);
System.err.println("输入的枚举值name为:" + clothesSize1.toString() + ",输入的枚举值value为:" + clothesSize1.getSize());
}
}
运行的截图:
说到底,还是简单的使用。一旦到了工作中还是会忘记,因为还是没有在工作中使用,所以忘记的比较快。下面也给出一个代码,希望自己不要忘记。后面也会列举出工作中的使用。
有大佬知道这段代码的作用也可以给菜鸟说一下。
就这样吧,结束。