JAVA中的枚举

一、什么是枚举

枚举是列出某些有穷集合的所有成员,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。

二、JAVA中的枚举

在JDK1.5之前需要我们自定义枚举类;

JDK 1.5 新增的 enum 关键字用于定义枚举类

若枚举只有一个对象, 则可以作为一种单例模式的实现方式。

三、什么时候使用枚举类

当类的对象只有有限个,确定的时候建议使用枚举类;

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

例如:

  • 就职状态:Busy、Free、Vocation、Dimission
  • 订单状态:Nonpayment(未付款)、Paid(已付款)、Delivered(已发货)、 Return(退货)、Checked(已确认)Fulfilled(已配货)、
  • 季节:Spring(春节)…Winter(冬天)

四、枚举类的使用

4.1自定义枚举类

  1. 声明Sex对象的属性:private final修饰
  2. 私有化类的构造器,并给对象属性赋值
  3. 提供当前枚举类的多个对象:public static final的
  4. 其他诉求1:获取枚举类对象的属性(添加get方法)
  5. 其他诉求2:提供toString()
public class Sex {

    //1.声明Season对象的属性:private final修饰
    private final String sex;
    private final String hairLength;

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

    //3.提供当前枚举类的多个对象:public static final的
    public static final Sex male = new Sex("男人","短发");
    public static final Sex female = new Sex("女人","长发");

    //4.其他诉求1:获取枚举类对象的属性
    public String getSex() {
        return sex;
    }

    public String getHairLength() {
        return hairLength;
    }

    //5.其他诉求2:提供toString()
    @Override
    public String toString() {
        return "Sex{" +
                "sex='" + sex + '\'' +
                ", hairLength='" + hairLength + '\'' +
                '}';
    }
}

4.2通过enum关键字定义枚举类

  1. 使用enum关键字定义枚举类
  2. 提供当前枚举类的对象,多个对象之间用",“隔开,末尾对象”;"结束
  3. 声明Sex对象的属性:private final修饰
  4. 私有化类的构造器,并给对象属性赋值
  5. 其他诉求1:获取枚举类对象的属性
public enum Sex {
    //1.提供当前枚举类的对象,多个对象之间用","隔开,末尾对象";"结束
    MALE("男人","短发"),
    FEMALE("女人","长发");

    //2.声明Sex对象的属性:private final修饰
    private final String sex;
    private final String hairLength;

    //3.私有化类的构造器,并给对象属性赋值(可以省略Private)
    Sex(String sex, String hairLength) {
        this.sex = sex;
        this.hairLength = hairLength;
    }
    //4.其他诉求1:获取枚举类对象的属性

    public String getSex() {
        return sex;
    }

    public String getHairLength() {
        return hairLength;
    }
}

五、枚举类的常用方法

1.toString():返回枚举类对象的名称

2.values():返回所的枚举类对象构成的数组

3.valueOf(String objName):返回枚举类中对象名是objName的对象。

public class MyTest {
    public static void main(String[] args) {
		//1.toString():返回枚举类对象的名称
        Sex male = Sex.MALE;
        System.out.println(male.toString());

        System.out.println("****************");
		//2.values():返回所的枚举类对象构成的数组
        Sex[] sexes = Sex.values();
        System.out.println(Arrays.toString(sexes));

        System.out.println("****************");
		//3.valueOf(String objName):返回枚举类中对象名是objName的对象。
        Sex female = Sex.valueOf("FEMALE");
        System.out.println(female);


    }
}

结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值