Java 枚举是一种特殊的类,用于表示一组固定的常量值。枚举类使用 enum 关键字来定义,通常用于表示一组相关的常量,比如季节、月份、星期天等。本文将详细介绍 Java 枚举的基本概念、使用方法以及一些高级用法。

1. 定义枚举类

枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。

示例:

enum Color {
    RED, GREEN, BLUE;
}
2. 使用枚举

可以像使用普通类一样来使用枚举类。

示例:

enum Color {
    RED, GREEN, BLUE;
}

public class Test {
    public static void main(String[] args) {
        Color c1 = Color.RED;
        System.out.println(c1);
    }
}

执行结果:

RED
3. 内部类中使用枚举

枚举类也可以声明在内部类中。

示例:

public class Test {
    enum Color {
        RED, GREEN, BLUE;
    }

    public static void main(String[] args) {
        Color c1 = Color.RED;
        System.out.println(c1);
    }
}

   执行结果:

RED
4. 迭代枚举元素

可以使用 for 语句来迭代枚举元素。

示例:

enum Color {
    RED, GREEN, BLUE;
}

public class MyClass {
    public static void main(String[] args) {
        for (Color myVar : Color.values()) {
            System.out.println(myVar);
        }
    }
}

执行结果:

RED
GREEN
BLUE
5. 在 switch 中使用枚举类

枚举类常应用于 switch 语句中。

示例:

enum Color {
    RED, GREEN, BLUE;
}

public class MyClass {
    public static void main(String[] args) {
        Color myVar = Color.BLUE;

        switch (myVar) {
            case RED:
                System.out.println("红色");
                break;
            case GREEN:
                System.out.println("绿色");
                break;
            case BLUE:
                System.out.println("蓝色");
                break;
        }
    }
}

执行结果:

蓝色
6. values(), ordinal()valueOf() 方法

enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Serializablejava.lang.Comparable 两个接口。以下是 values(), ordinal()valueOf() 方法的用法:

  • values() 返回枚举类中所有的值。
  • ordinal() 返回枚举常量的索引。
  • valueOf() 返回指定字符串值的枚举常量。

示例:

enum Color {
    RED, GREEN, BLUE;
}

public class Test {
    public static void main(String[] args) {
        Color[] arr = Color.values();

        for (Color col : arr) {
            System.out.println(col + " at index " + col.ordinal());
        }

        System.out.println(Color.valueOf("RED"));
        // System.out.println(Color.valueOf("WHITE")); // 会抛出 IllegalArgumentException
    }
}

执行结果:

RED at index 0
GREEN at index 1
BLUE at index 2
RED
7. 枚举类成员

枚举类可以包含变量、方法和构造函数。构造函数只能使用 private 修饰符,所以外部无法调用。

示例:

enum Color {
    RED, GREEN, BLUE;

    private Color() {
        System.out.println("Constructor called for : " + this.toString());
    }

    public void colorInfo() {
        System.out.println("Universal Color");
    }
}

public class Test {
    public static void main(String[] args) {
        Color c1 = Color.RED;
        System.out.println(c1);
        c1.colorInfo();
    }
}

执行结果:

Constructor called for : RED
Constructor called for : GREEN
Constructor called for : BLUE
RED
Universal Color
8. 高级用法:枚举和抽象方法

枚举既可以包含具体方法,也可以包含抽象方法。如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。

示例:

enum Color {
    RED {
        public String getColorInfo() {
            return "Color is Red";
        }
    },
    GREEN {
        public String getColorInfo() {
            return "Color is Green";
        }
    },
    BLUE {
        public String getColorInfo() {
            return "Color is Blue";
        }
    };

    public abstract String getColorInfo();
}

public class Test {
    public static void main(String[] args) {
        for (Color color : Color.values()) {
            System.out.println(color.getColorInfo());
        }
    }
}

执行结果:

Color is Red
Color is Green
Color is Blue

通过以上内容,我们了解了 Java 枚举的基本概念、使用方法、以及一些高级用法。希望这个教程能帮助你更好地掌握 Java 枚举的使用。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部