java—枚举的使用(enum)

(一)枚举的介绍与使用

  • 在JDK1.5中添加了一个新特性,即 enum 关键字。
  • 使用enum关键字可以创建枚举类。
  • 枚举类型的实例是常量,按照命名规则使用大写字母。
  • 使用enum关键字定义的枚举类本质上就相当于一个Class定义的类,继承了java.lang.Enum父类。
  • 所有的枚举类默认继承于Enum类.
  • 创建enum时,系统会自动创建toString()方法,用来直接显示enum实例的名字。
  • 枚举最大的特点就是只有几个指定的对象可以使用。
  • Enum类中的方法:
方法作用
protected Enum(String name, int ordinal)构造方法
public final String name()取得枚举名字
public final int ordinal()取得枚举序号,序号从0开始
static values()按照enum常量的声明顺序,产生由这些常量值构成的数组

举例1:
使用enum创建一个枚举类:

package www.fanfan.com;

enum Color{
//类里面都是枚举的实例化,都是常量,使用大写字母
    RED,YELLOW,BLUE;
}

public class EnumTest {
    public static void main(String[] args) {
    //创建实例化对象
        Color blue = Color.BLUE;
    //打印枚举类对象,创建enum时,自动创建了toString()方法,直接显示enum实例的名字。
        System.out.println(blue);
   //调用name()方法,获得枚举名字
        System.out.println(blue.name());
   //调用ordinal()方法,获得枚举序号
        System.out.println(blue.ordinal());
   //使用values()方法,打印枚举类中的每一个实例化对象
        for (Color c:Color.values()){
            System.out.print(c+" ");
        }
    }
}

在这里插入图片描述

(二)enum 与 Enum 的区别

enum是一个关键字,使用enum定义的类实际上就是一个继承了Enum这个抽象类。

(三)定义枚举的结构

  • 枚举中,不仅仅可以只有枚举对象,可以在枚举中定义属性,方法,实现接口。
  • 如果枚举中有很多内容,有枚举对象,属性,方法等;枚举对象要放在第一行;
  • 构造方法私有化;
  • 枚举还可以实现接口,这样枚举中的每一个对象都变成了接口对象。

    举例2:
package www.fanfan.com;

enum Color{
    RED("123"),YELLOW("黄色"),BLUE("蓝色");

    private String str;

   private Color(String str) {
        this.str = str;
    }

    public String toString(){
        return this.str;
    }
}

public class EnumTest {
    public static void main(String[] args) {
    
        System.out.println(Color.BLUE);

    }
}

(四)枚举与switch

因为switch要在有限的可能值集合进行选择,因此与enum是绝佳的组合。
举例4:

package www.fanfan.com;

enum Sex{
    MALE,FAMALE;
}

public class EnumAndSwitch {
    Sex sex;

    public EnumAndSwitch(Sex sex) {
        this.sex = sex;
    }

    public void describe(){
        switch (sex){
            case MALE: System.out.println("男");
                break;
            case FAMALE: System.out.println("女");
                break;
            default:
                break;
        }
    }

    public static void main(String[] args) {
        EnumAndSwitch eas1 = new EnumAndSwitch(Sex.MALE);
        EnumAndSwitch eas2 = new EnumAndSwitch(Sex.FAMALE);
        eas1.describe();
        eas2.describe();
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值