Java基础学习——枚举类

本文介绍了Java中枚举类的特性,包括其默认的final属性,私有的构造方法,以及继承自java.lang.Enum并实现Comparable和Serializable接口。枚举类支持使用EnumMap和EnumSet进行集合操作,EnumSet通过特定静态方法实例化,确保元素不重复。
摘要由CSDN通过智能技术生成

Java基础学习——枚举类


前几天在面试中被问到了枚举类,现在就把枚举类的相关知识点总结在下面。

  1. 枚举可以用enum关键字来定义,枚举类型的取值默认是public static final。划重点了,虽然没有直接用final来修饰,但枚举类默认是final的,也就是说,枚举类不能被继承!
  2. 枚举类的构造方法默认是private。
  3. 用enum定义的枚举类是默认继承java.lang.Enum类的,而Enum实现了Comparable和Serializable两个接口,这证明了枚举类可以使用比较器或进行序列化操作。
  4. 枚举类的主要操作方法如下:
序号方法类型描述
1protected Enum(String name,int ordinal)构造接收枚举的名称和枚举的常量创建枚举对象
2protected final Object clone() throws CloneNotSupportedException普通克隆枚举对象
3public final int compareTo(E o)普通对象比较
4public final boolean equals(Object other)普通对象比较
5public final int hashCode()普通返回枚举常量的哈希码
6public final String name()普通返回此枚举的名称
7public final ordinal()普通返回枚举常量的序数
8public static <T extends Enum<T>> T valueOf(class<T> enumType,String name)普通返回带指定名称的指定枚举类型的枚举常量
  1. 在JDK1.5之后,java.util包里提供了两个新的集合操作类:EnumMap和EnumSet,EnumMap类提供了java.util.Map接口的一个特殊实现,该类中的键(key)是一个枚举类型;EnumSet类提供了java.util.Set接口的一个特殊实现。
    EnumSet是Set接口的一个特殊实现,所以里面的内容是无法重复的。使用EnumSet时是不能直接使用关键字new为其进行实例化,而是应该使用本类中提供的静态方法,如下(类型全是普通,complementOf方法描述起来有点抽象,看看例程就能理解)
序号方法描述
1allOf将枚举中的全部内容设置到EnumSet中
2of创建一个包含枚举指定内容的EnumSet对象
3copyOf创建一个从指定Collection中指定的EnumSet’对象
4complementOf创建一个其元素类型与指定枚举set相同的枚举set,最初包含指定集合中所不包含的此类型的所有元素
5nuneOf创建一个可以接收指定类型的空集合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值