自定义枚举
package com.ruqi.test;
// 自定义枚举类
public class UseEnum{
public static void main(String[] args) {
System.out.println(Season.SPRING.getSeason());
}
}
class Season {
// 1、定义属性且不可修改
private final String season;
private final String seasondesc;
// 2、定义私有构造器,为了可以定义不的枚举
private Season(String season, String seasondesc){
this.season = season;
this.seasondesc = seasondesc;
}
// 3、定义具体的枚举描述
public static final Season SPRING = new Season("春天", "温暖");
public static final Season SUMMER = new Season("夏天", "火热");
public String getSeason() {
return season;
}
public String getSeasondesc() {
return seasondesc;
}
}
enum枚举类,由自定义枚举演变过来
package com.ruqi.test;
enum SeasonEnum {
// public static final Season SPRING = new Season("春天", "温暖");
// public static final Season SUMMER = new Season("夏天", "火热");
// 重复的内容都去掉,并且用逗号分隔,最后分号
SPRING("春天", "温暖"),
SUMMER("夏天", "火热");
// 1、定义属性且不可修改
private final String season;
private final String seasondesc;
// 2、定义私有构造器,为了可以定义不同的枚举
SeasonEnum(String season, String seasondesc){
this.season = season;
this.seasondesc = seasondesc;
}
public String getSeason() {
return season;
}
public String getSeasondesc() {
return seasondesc;
}
}
3、常用api
package com.ruqi.test;
public class UseEnum{
public static void main(String[] args) {
// 常用api
// 1、得到所有枚举的数组
SeasonEnum[] list = SeasonEnum.values();
for (SeasonEnum o : list) {
System.out.println(o);
}
// 2、toString,打印枚举的名字
System.out.println(SeasonEnum.SPRING.toString());
// 3、valueOf,根据填充的名称,找到相应的枚举名称,没有则抛异常
SeasonEnum S = SeasonEnum.valueOf("SPRING");
System.out.println(S);
}
}
4、枚举类实现接口
package com.ruqi.test;
interface Info{
void show();
}
enum SeasonEnum implements Info{
SPRING("春天", "温暖"){
@Override
public void show() {
System.out.println("只会对春天重写");
}
},
SUMMER("夏天", "火热"){
@Override
public void show() {
System.out.println("只会对夏天重写");
}
};
// 1、定义属性且不可修改
private final String season;
private final String seasondesc;
// 2、定义私有构造器,为了可以定义不同的枚举
SeasonEnum(String season, String seasondesc){
this.season = season;
this.seasondesc = seasondesc;
}
public String getSeason() {
return season;
}
public String getSeasondesc() {
return seasondesc;
}
// @Override
// public void show() {
// System.out.println("可以在整个类中重写,但所有的枚举都只能执行的这个重写方法");
// }
}
=======================================
public class UseEnum{
public static void main(String[] args) {
SeasonEnum.SPRING.show();
}
}