1. 序言:关键字Enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。<br />1**.enumvalues()方法:**<br />** ** 调用枚举的values()方法可以遍历注解中的实例。values方法返回一个枚举实例的数组,而且该数组中的元素次序保持在你的枚举类中声明的顺序。
    1. package com.package19;
    2. enum Shrubbery{
    3. GROUND,CRAWLING,HANGING;
    4. }
    5. public class EnumClass {
    6. public static void main(String[] args) {
    7. for (Shrubbery value : Shrubbery.values()) {
    8. System.out.println(value+" "+value.ordinal());
    9. System.out.println(value==Shrubbery.CRAWLING);
    10. System.out.println(value.equals(Shrubbery.CRAWLING));
    11. System.out.println(value.name());
    12. System.out.println(value.getDeclaringClass());
    13. System.out.println("============================");
    14. }
    15. }
    16. }
    1. ordinal()方法返回一个int值,该值时每个enum是在声明的顺序。name()方法返回enum实例声明时的名字,通过调用getDeclaringClass(),我也就可以知道该实例所属的enum类。

    注意:
    1.我们创建的一个enum类都会继承java.long.Enum。
    Enum部分源代码

    1. public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable {
    2. public final boolean equals(Object other) {
    3. return this==other;
    4. }
    5. public final int hashCode() {
    6. return super.hashCode();
    7. }
    8. public final int compareTo(E o) {
    9. Enum<?> other = (Enum<?>)o;
    10. Enum<E> self = this;
    11. if (self.getClass() != other.getClass() && // optimization
    12. self.getDeclaringClass() != other.getDeclaringClass())
    13. throw new ClassCastException();
    14. return self.ordinal - other.ordinal;
    15. }
    16. }
    1. 并且这个类还实现了Comparable接口和Serializeable接口。所以没一个enum类都具有CompareTo()方法和equals()、hashCode()方法。<br />**2.enum类之间不可以继承**
    1. enum Shrubbery{
    2. GROUND,CRAWLING,HANGING;
    3. }
    4. public enum Spicinerss extends Shrubbery {//不能继承
    5. NOT,MILD,MEDIUM,HOT,FLAMING;
    6. }

    2.静态导入用于enum
    静态导入:在导入包的路上加入static 关键字。所以在使用该类的static成员时可不带类名

    1. import static com.package19.Spicinerss.*;//静态导入
    2. public class Burrito {
    3. Spicinerss spicinerss;
    4. Burrito(Spicinerss spicinerss) {
    5. this.spicinerss = spicinerss;
    6. }
    7. @Override
    8. public String toString() {
    9. return "Burrito is" + spicinerss;
    10. }
    11. public static void main(String[] args) {
    12. System.out.println(new Burrito(MEDIUM));
    13. }
    14. }