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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值