浅谈Java Enum作用与应用场景

本文探讨了Java中的枚举类型(Enum),解释了其作为特殊类的特点,包括限制构造函数、枚举值的特性、实现Comparable接口等。枚举在参数规范、类型安全和方法重写方面具有优势,可以通过values()方法进行枚举值遍历,ordinal()方法获取枚举顺序。通过了解这些特性,可以更好地在实际项目中运用Enum。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 Java语言中对这样取值比较特殊的变量可以定义为枚举类型。
所谓枚举是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。
枚举是一个特殊的类,可以定义自己的变量,自己的方法,构造方法,甚至可以实现一个接口等等,只是它的实例是事先定义好的,限定了范围,可以使用的实例只能在限定范围内取得。

enum Car{

    //枚举实例,限定枚举实例范围
    lamborghini(888888,"兰博基尼"),tata(50000,"塔塔"),audi(666666,"奥迪"),fiat(555555,"菲亚特"),honda(444444,"宏达");

    //枚举变量
    private int    price;
    private String name;

    //构造方法,不能使用public修饰符,保证客户代码没有办法新建一个enum的实例
    Car(int price,String name){
        this.price = price;
        this.name  = name;
    }

    //枚举方法
    int getPrice(){
        return price;
    }

    String getName(){
        return name;
    }

}

枚举规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。

Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。

1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。

2.所有枚举值都是public , static, final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 , 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。

3.Enum默认实现了java.lang.Comparable接口。

4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.

5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。

6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。

7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。

了解了这些基本特性,我们来看看如何使用它们。

1.遍历所有有枚举值. 知道了有values方法,我们可以轻车熟路地用ForEach循环来遍历了枚举值了。

for    (Color    c:    Color.values()) {
    System.out.println(“find    value:”    +    c);    
}        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值