小白学java-基础篇(枚举)

枚举是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示;
枚举类型的声明:
[public] enum 枚举类型名称{
枚举对象1、枚举对象2、.....、枚举对象n;
}

可以直接实例化时取出枚举值:
Color c= Color.BLUE
也可以通过枚举.value()将枚举类型变为对象数组;
也可以通过switch进行判断,但是在swtich语句使用枚举类型时,不能再枚举值前面加上枚举类型的类名;

1、Enum类:
Enum类实现了Comparable和Serializable接口,说明可以进行比较和序列化;
a、pretected Enum(String name,int ordinal)接收枚举的名称和常量创建枚举;
b、protected final Object clone()throws CloneNotSupportedException克隆枚举对象;
c、public final int CompareTo(E O)对象比较;
d、public final boolean equals(Object other)比较两个枚举对象;
e、public final int hashCode()返回枚举常量的哈希码;
f、public final String name()返回枚举常量的名称;
g、public final int ordinal()返回枚举常量的序数;
h、public static <T extends Enum<T>>T valueOf (Class<T> enumType,String name)返回带指定名称的指定枚举类型的枚举常量;

2、EnumMap和EnumSet类:
使用EnumSet不能用new实例,需要使用静态方法;
a、public static <E extends Enum<E>> EnumSet <E> allOf<Class<E> elementType>将枚举中的全部内容设置到EnumSet中;
b、public static <E extends Enum<E>> EnumSet <E> of(E first,E...rest)创建一个包含枚举指定内容的EnumSet对象;
c、public static <E extends Enum<E>> EnumSet <E> copyOf(Collection<E> c)创建一个从指定Collection中指定的EnumSet对象;
d、public static <E extends Enum<E>> EnumSet <E> complementOf(EnumSet<E> c)创建一个其元素类型与指定枚举set相同的枚举set,最初包含指定集合中所不包含的此类型的所有元素;
e、public static <E extends Enum<E>> EnumSet <E> noneOf(Class<E> elementType)创建一个可以接受指定类的空集合。

3、枚举也可以实现接口,枚举类中每个对象都要实现抽象方法;
也可以在枚举类中顶一个抽象方法。
!!!这模块日后需要多加学习

猜你喜欢

转载自blog.csdn.net/qq_29070549/article/details/79497427
今日推荐