枚举(enum)

枚举(enum)

枚举是一个特殊的类,一般表示一组常量,如一年四季,一周七天

枚举用关键字enum表示,各个常量使用 ',' 隔开

示例:

enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    Color c=Color.RED;
    sout(c);
}
//执行结果为 RED

enum常用的几个方法

enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Serializable 和 java.lang.Comparable 两个接口

values() 返回枚举中的所有值

valueof() 返回指定字符串值常量的枚举值

ordinal() 返回每个枚举常量的索引,即在一组常量中处于第几个位置

enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    Color c=Color.YELLOW;
    System.out.println(Color.valueOf("RED"));
    System.out.println(c.ordinal());
}
//执行结果为
//RED
//1

用途

枚举使用在内部类中

class A{
    enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    Color c=Color.RED;
    sout(c);
}
}
//执行结果为 RED

注意:枚举中的所有值都是 public static final 类型的

迭代枚举元素

    enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    for(Color color:Color.values()){
        sout(color)
    }
    
}

在switch中使用枚举

    enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    Color color=Color.BLUE;
	 switch (color){
            case RED:
                System.out.println("红色!");
                break;
            case BLUE:
                System.out.println("蓝色!!");
                break;
            default:
                System.out.println("绿色!!!");
                break;

        }
    
}

枚举类成员

枚举类和普通类相同,都有变量,方法,和构造函数。构造函数只能使用private关键字修饰,外部无法调用

枚举类也可以有普通方法和抽象方法,若有抽象方法则枚举类的每个实例都必须重写该方法

enum Color
{
    RED, GREEN, BLUE;

    private Color(){
        System.out.println("调用构造方法的是"+this.toString());
    }
    public void method(){
        System.out.println("枚举类中也可以有方法!!!");
    }
 public static void main(String[] args)
    {

        Color color=Color.RED;
        Color color1=Color.BLUE;
        System.out.println(color);
        color.method();
    }
    //输出结果为
    /*
    调用构造方法的是RED
	调用构造方法的是GREEN
	调用构造方法的是BLUE
	RED
	枚举类中也可以有方法!!!
    */

从上述结果看,枚举中的每个常量都是枚举的一个实例,且在获取一个常量时,会将所有常量都实例化

且只会实例化一次

posted @ 2023-02-16 19:50  杨远  阅读(526)  评论(0编辑  收藏  举报