package com.atguigu.test07;
/*
* 枚举:JDK1.5就引入
* 类似:列举,穷举,一一罗列
* Java枚举:把某个类型的对象,全部列出来
*
* 当什么情况下会用到枚举类型?
* 当某个类型的对象是固定的,有限的几个,那么就可以选择使用枚举。
* 在整个系统的运行期间,有且只有这几个对象。
*
* 例如:
* 性别 Gender,它的对象只有三个:男,女,妖
* 星期 Week,它的对象只有7个:Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
* 季节 Season,它的对象只有4个:Spring,Summer,Fall,Winter
* OA系统,办公系统,员工的状态Status,有几种:忙Busy,闲Free,假Vocation,离职Left
* 支付系统,支付方式Payment,有几种:Alipay,Wechat,card, cash
* 。。。。。
*
* 讨论:JDK1.5之前,如果想要实现枚举的这种效果
* (1)构造器私有化:
* 目的:在这个类的外面,无法随意的创建对象
* (2)在这个类中,提前创建好几个对象,供别人使用
*
* JDK1.5之后,就优化了枚举的语法:
*
*/
public class TestEnum {
public static void main(String[] args) {
// Gender g1 = new Gender();
Gender nan1 = Gender.NAN;
Gender nan2 = Gender.NAN;
System.out.println(nan1 == nan2);//true
}
}
class Gender{
//public:使得外面可以直接访问
//static:使得可以使用“类名.”访问
//final:前调这个对象是不可变
public static final Gender NAN = new Gender("男");
public static final Gender NV = new Gender("女");
public static final Gender YAO = new Gender("妖");
private String description;
private Gender(String description){
this.description = description;
}
}