小白入门-如何简单的自定义实现枚举类型

首先,明确一点,枚举是为了解决某个类只有有限个对象的问题而设计的

接下来:

贴代码,一看你就懂了

/**
枚举类型解决的是一个类的对象是有限个的
 */
public class Season {


//属性不改变
private final String name;
private final String desc;
//私有化构造
private Season(String name,String desc) {

this.name=name;
this.desc=desc;
}


//只有四个对象
public static final Season SPRING=new Season("春天","春暖花开");
public static final Season SUMMER=new Season("夏天","百花齐放");
public static final Season AUTOUM=new Season("秋天","秋风飒爽");
public static final Season WINTER=new Season("东天","白雪皑皑");

public String getName() {
return name;
}


public String getDesc() {
return desc;
}


@Override
public String toString() {
return "Season [name=" + name + ", desc=" + desc + "]";
}


}


以上自定义枚举类型实现


那么使用java高级点的方式呢?

/**

枚举类型解决的是一个类的对象是有限个的


 */
public enum SeasonEnum {

        //需要注意:枚举类型必须在最前面,把共同的东西删除即可
//只有四个对象
SPRING("春天","春暖花开"),
SUMMER("夏天","百花齐放"),
AUTOUM("秋天","秋风飒爽"),
WINTER("东天","白雪皑皑");

//属性不改变
private final String name;
private final String desc;

private SeasonEnum(String name,String desc) {

this.name=name;
this.desc=desc;
}




public String getName() {
return name;
}


public String getDesc() {
return desc;
}


@Override
public String toString() {
return "Season [name=" + name + ", desc=" + desc + "]";
}


}


然后枚举类的几个重要方法:

SeasonEnum[] values = SeasonEnum.values();
// for (SeasonEnum seasonEnum : values) {
// System.out.println(seasonEnum);
// }

SeasonEnum seasonEnum = SeasonEnum.valueOf("SPRING");

System.out.println(seasonEnum);//此方法用来给定一个字符串获取枚举类型


当然,最后,枚举也可以实现接口啦。不再赘述。

猜你喜欢

转载自blog.csdn.net/sinat_41832255/article/details/80062946