1.基本enum特性
1.1首先介绍了3个方法
values():获取enum实例的数组
ordinal():获取enum实例在声明时的次序
name() :获取enum实例声明时的名称
public class EnumTest {
public static void main(String[] args){
sardine[] sardineList= sardine.values();
Integer order= sardineList[1].ordinal();
String name=sardineList[1].name();
for(sardine s:sardineList) {
System.out.println("内容:"+s);
}
System.out.println("次序:"+order);
System.out.println("实例名称:"+name);
}
}
enum sardine{
A,B,C
}
1.2静态导入用于enum
import static xx.xx.xx.xxenum.*;
这样就不需使用enum类型再修饰enum实例。
2.向enum增加新方法
enum除了不能继承enum外,我们可以把它看成一个常规的类。
所以enum中也是可以添加方法的。
public class EnumTest {
public static void main(String[] args){
for(sardine s:sardine.values()) {
System.out.println(s.toString());
}
}
}
enum sardine{
A,B,C;
public String toString(){
StringBuilder x=new StringBuilder("沙丁鱼flat:");
x.append(name());
return x.toString();
}
}
3.一些简单的enum知识点
3.1 switch中使用enum的实例来判断是个很好的思路
3.2 enum的values()其实并不存在,这个values()其实是由编译器添加的static方法
3.3 由于enum都是继承自java.lang.Enum类的,java不支持多重继承,所以enum不能继承其它类
3.4 enum无法继承,但是也有可以取巧的方法,那就是在接口里面写enum,然后实现接口。同样可以实现enum子类化。
对于enumSet和enumMap请看我写的这篇笔记
https://blog.csdn.net/asdfghj253/article/details/103487296
对于enum的一些其它的知识点,我这边的笔记有:
来源:CSDN
作者:沙丁鱼flat
链接:https://blog.csdn.net/asdfghj253/article/details/104037477