1、枚举类的产生
- 当一个类的对象只用有限个,确定的。如星期、性别、季节
- 当需要定义一组常量时,强烈建议使用枚举类。
- 如果枚举类的对象只用一个,可作为单例模式
2、开发中常用枚举类的情况
- 性别
- 季节
- 星期
- 支付方式
- 就职状态
- 订单状态
- 线程状态
3、代码查验学习
package com.compter;
public class LearnEmue {
//1、声明私有化对象的属性
private final String seasonName;
private final String seasonDesc;
// 2、私有化类的构造器
private LearnEmue(String seasonName, String seasonDesc) {
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
//3、提供当前枚举类的多个对象(可与单例模式部分结合学习)
public static final LearnEmue SPRING = new LearnEmue("春天","春暖花开");
public static final LearnEmue SUMMER = new LearnEmue("夏天","夏日炎炎");
public static final LearnEmue AUTUMN = new LearnEmue("秋天","秋高气爽");
public static final LearnEmue WINTER = new LearnEmue("冬天","寒风凛冽");
//4、其他: 获取枚举类对象的属性
public String getSeasonName() {
return seasonName;
}
// 提供toString()
@Override
public String toString() {
return "LearnEmue{" +
"seasonName='" + seasonName + '\'' +
", seasonDesc='" + seasonDesc + '\'' +
'}';
}
}
测试
package com.test;
import com.compter.LearnEmue;
import org.junit.Test;
public class TestEmue {
@Test
public void test(){
LearnEmue autumn1 = LearnEmue.AUTUMN;
LearnEmue spring2 = LearnEmue.SPRING;
LearnEmue summer3 = LearnEmue.SUMMER;
LearnEmue winter4 = LearnEmue.WINTER;
//两种方式是一个意思哦
System.out.println("*****输出格式可以自己在toString()中更改哦*****");
System.out.println(autumn1.toString());
System.out.println(autumn1);
System.out.println(spring2);
System.out.println(summer3);
System.out.println(winter4);
}
}
运行结果
输出格式可以自己在toString()中更改哦
LearnEmue{seasonName='秋天', seasonDesc='秋高气爽'}
LearnEmue{seasonName='秋天', seasonDesc='秋高气爽'}
LearnEmue{seasonName='春天', seasonDesc='春暖花开'}
LearnEmue{seasonName='夏天', seasonDesc='夏日炎炎'}
LearnEmue{seasonName='冬天', seasonDesc='寒风凛冽'}