枚举类理解与使用

本文介绍了Java中枚举类的使用,包括枚举类的概念、定义方式及其优势。枚举类适用于定义一组固定的常量,可以替代传统的final static变量。在JDK5.0之前,可以通过自定义类实现枚举功能;JDK5.0之后,可以直接使用`enum`关键字简化定义。枚举类的常用方法如`values()`和`valueOf()`提供了方便的操作。此外,枚举类还可以作为单例模式的一种实现方式。
摘要由CSDN通过智能技术生成

一、枚举类的使用

1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类

2.当需要定义一组常量时,强烈建议使用枚举类

3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。

二、如何定义枚举类

方式一:jdk5.0之前,自定义枚举类

public class TestEnum {
    public static void main(String[] args) {
        Person xg = Person.XG;
        System.out.println(xg);
    }
}

// 自定义枚举类
class Person {
    //1.声明Person对象的属性:private final修饰
    private final String Name;
    private final String Desc;

    //2.私有化类的构造器,并给对象属性赋值
    private Person(String Name,String Desc){
        this.Name = Name;
        this.Desc = Desc;
    }

    //3.提供当前枚举类的多个对象:public static final的
    public static final Person XG = new Person("小刚","xiaogang");
    public static final Person XH = new Person("小红","xiaohong");
    public static final Person XM = new Person("小明","xiaoming");

    public String getName() {
        return Name;
    }

    public String getDesc() {
        return Desc;
    }

    @Override
    public String toString() {
        return "Person{" +
                "Name='" + Name + '\'' +
                ", Desc='" + Desc + '\'' +
                '}';
    }
}

在这里插入图片描述

方式二:jdk5.0,可以使用enum关键字定义枚举类

public class TestEnum1 {
    public static void main(String[] args) {
        Person1 person1 = Person1.XIAOGANG;
        // toString():返回枚举类对象的名称
        System.out.println(person1);
    }
}

//使用enum关键字枚举类
enum Person1 {
    //1.提供当前枚举类的对象,多个对象之间用","隔开,末尾对象";"结束
    XIAOGANG("小刚","xiaogang"),
    XIAOMING("小明","xiaoming");

    //2.声明Season对象的属性:private final修饰
    private final String Name;
    private final String Desc;

    //2.私有化类的构造器,并给对象属性赋值
    private Person1(String Name,String Desc){
        this.Name = Name;
        this.Desc = Desc;
    }
}

在这里插入图片描述
没有打印地址的值,所以它的父类并不是 Object,打印一下它的父类发现是 java.lang.Enum

System.out.println(Person1.class.getSuperclass());

三、Enum类中的常用方法

values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。
 
valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。
 
toString():返回当前枚举类对象常量的名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值