枚举类
最近在写代码的时候发现String类型十分有用,而且枚举类型作为常常被忽略的一个类型却常常被使用,所以我想通过这次笔记好好记录自己对这两个类型及相关知识的学习内容:
枚举类型:
枚举类型是一个用于罗列有限元素的集合的类型,关键字是enum,对于枚举类型我们能做什么?
首先通过上网查询,我了解到枚举类型的作用:个人理解就是纵使你不会写代码,也能看懂这个集合是用来做什么的,例如人的性别:男和女,如果你硬要用一个int数组去描述1代表男人,2代表女人,除了会因为为啥女人要排在第二位这样的性别歧视问题而烦恼,还会面临3代表什么这种情况。对于这种特性可以通过枚举类型进行定义:
import java.util.*; public class Sex { enum Sexy { MAN, WOMAN; }; public static void main(String args[]) { Scanner in = new Scanner(System.in); System.out.println(Sexy.MAN.toString().equals(SetSex.valueOf("M"))); System.out.println(Sexy.MAN.toString()); System.out.println(SetSex.M); System.out.println(SetSex.valueOf("M")); System.out.println(Enum.valueOf(SetSex.class, "M").getSex()); System.out.println("Input your sex: M(MAN) or W(WOMAN)"); String input = in.next().toString(); switch (input) { case "M": SetSex ss = Enum.valueOf(SetSex.class, input); System.out.println(ss.getSex()); break; case "W": SetSex sl = Enum.valueOf(SetSex.class, input); System.out.println(sl.getSex()); break; default: System.out.println("Invalid value!"); break; } } } enum SetSex { M("MAN"), W("WOMAN"); private SetSex(String set) { this.set = set; } public String getSex() { return set; } private String set; }
结构图:

代码很简单,但是值得注意的是文章中的枚举类SetSex和Sexy;还有代码中间出现的一连串的输出语句,输出结果是:
false
MAN
M
M
MAN
Input your sex: M(MAN) or W(WOMAN)
上面简单的一段代码中定义了两个“枚举类型的类”,分别是:Sexy和SetSex,首先Sexy就是一个简单的字符型的枚举类型(不知道对不对),其中包含两个实例MAN和WOMAN,所以通过Sexy.MAN和Sexy.WOMAN调用;其次是SetSex,其中M("MAN")和W("WOMAN")是定义的两个实例,所以类中定义的方法适用于这两个实例,所以使用getSex()返回的是“MAN”和“WOMAN”。
常用的方法:valueOf(),values(),name().

浙公网安备 33010602011771号