Thinking in java学习笔记16:第十九章(枚举类型)

好久不见. 提交于 2020-01-19 17:35:10

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的一些其它的知识点,我这边的笔记有:

https://blog.csdn.net/asdfghj253/article/details/103469250

https://blog.csdn.net/asdfghj253/article/details/103453355

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!