Java 枚举

枚举:

  • Java 枚举是一个特殊的类,一般表示一组常量。比如一年的四个季节,一年的12个月份等。
    • Java 枚举使用 enum 关键字定义,各个常量使用”,“分割。
    • Java 枚举类中的构造函数只能使用 private 修饰
    • 枚举类中可以存在抽象方法,但是枚举类中的每个对象必须覆写该抽象方法

定义一个颜色枚举类

package practicePackage;

enum Color{
    RED,GREEN,BLUE;
}
public class javaDemo {
    public static void main(String[] args) {
        Color c = Color.BLUE;
        System.out.println(c);
    }
}

内部类使用枚举

package practicePackage;

public class javaDemo {
    enum Color{
        RED,GREEN,BLUE;
    }
    public static void main(String[] args) {
        Color c = Color.BLUE;
        System.out.println(c);
    }
}

迭代枚举元素

package practicePackage;

public class javaDemo {
    enum Color{
        RED,GREEN,BLUE;
    }
    public static void main(String[] args) {
        for(Color var:Color.values()){
            System.out.println(var);
        }
    }
}

SWITCH 语句中使用枚举

package practicePackage;

public class javaDemo {
    enum Color{
        RED,GREEN,BLUE;
    }
    public static void main(String[] args) {
        Color myColor = Color.RED;
        switch (myColor){
            case GREEN -> System.out.println("green");
            case BLUE -> System.out.println("blue");
            case RED -> System.out.println("red");
        }
    }
}

枚举中的常用方法

Java 枚举类默认继承了 java.long.Enum类,Enum类是抽象类,并实现了java.lang.Seriablizable 和 java.lang.Comparable 两个接口。

  • values() 方法返回枚举类中的所有值
  • ordinal() 方法找出枚举常量的索引,类似数组
  • valueOf() 方法返回指定字符串值的枚举常量
package practicePackage;

public class javaDemo {
    enum Color{
        RED,GREEN,BLUE;
    }
    public static void main(String[] args) {
        Color myColor = Color.RED;
        for(Color c:Color.values()){   //  调用 values()方法  ,迭代返回数组
            System.out.println(c + " at index " + c.ordinal()); // 查看该常量索引
        }
        System.out.println(Color.valueOf("BLUE"));  // 查看该常量的值
    }
}

枚举类中的抽象方法实现

package practicePackage;

enum Color{
    RED{
        @Override
        public String getColor() {
            return "Color is red";
        }
    },GREEN{
        @Override
        public String getColor() {
            return "Color is green";
        }
    },BLUE{
        @Override
        public String getColor() {
            return "Color is blue";
        }
    };
    public abstract String getColor();
}
public class javaDemo {
    public static void main(String[] args) {
        Color myColor = Color.RED;
        System.out.println(myColor.getColor());
    }
}

每个对象必须覆写该抽象方法;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值