版权声明:如果觉得好的话,不防点个赞,那点你们认为不对或是需要补充,可以留言啊!本人原创,未经允许不得转载!! https://blog.csdn.net/qq_28289405/article/details/84763970
自定义枚举类:
/**
* @Date: 2018/12/3 11:18
* @Description: 自定义枚举类
*/
public class testEnum {
public static void main(String args[]) {
Season spring = Season.SPRING;
System.out.println(spring);
}
}
//自定义枚举类
class Season{
//1.提供类的属性,声明为 private final
private final String seasonName;
private final String seasonDesc;
//2.声明为final的属性,在构造器中初始化
private Season(String seasonName ,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
//3.通过公共的方法来调用属性
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
//4.创建枚举类的对象:将类的对象声明 public static final
private static final Season SPRING= new Season("spring","春暖花开");
private static final Season SUMMER= new Season("summer","夏日炎炎");
private static final Season AUTUMN= new Season("autumn","秋高气爽");
private static final Season WINTER= new Season("winter","白雪皑皑");
@Override
public String toString() {
return "Season{" +
"seasonName='" + seasonName + '\'' +
", seasonDesc='" + seasonDesc + '\'' +
'}';
}
}
若枚举只有一个对象,则可以作为是一种单例模式的实现方式。
使用enum 定义枚举类:
/**
* @Date: 2018/12/3 11:18
* @Description:
* 枚举类
* 1.如何自定义枚举类
* 2.如何使用enum 关键字定义枚举类
* > 常用的方法
* > 如何让枚举类实现接口
* values():将枚举类里面的所有的对象以数组的形式返回。
* valueof():传入string类型的参数,返回string的对象(返回枚举类的对象)
*/
public class testEnum1 {
public static void main(String args[]) {
Season1 spring = Season1.SPRING;
System.out.println(spring);
spring.show();
//1.values()
Season1[] season1s = Season1.values();
for (int i=0;i<season1s.length; i++){
System.out.println(season1s[i]);
}
//2.valueof(String name):要求传入的形参name是枚举类对象的名字。
//否则,报 java.lang.IllegalArgumentException 异常
String str = "SPRING";
Season1 season1 = Season1.valueOf(str);
System.out.println(season1);
Thread.State[] values = Thread.State.values();
for (int i =0 ; i< values.length ; i++){
System.out.println(values[i]);
}
}
}
interface Info{
void show();
}
//自定义枚举类
enum Season1 implements Info{
SPRING("spring","春暖花开"),
SUMMER("summer","夏日炎炎"),
AUTUMN("autumn","秋高气爽"),
WINTER("winter","白雪皑皑");
//1.提供类的属性,声明为 private final
private final String seasonName;
private final String seasonDesc;
//2.声明为final的属性,在构造器中初始化
private Season1(String seasonName ,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
//3.通过公共的方法来调用属性
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
@Override
public String toString() {
return "Season{" +
"seasonName='" + seasonName + '\'' +
", seasonDesc='" + seasonDesc + '\'' +
'}';
}
public void show(){
System.out.println("123456789");
}
}
运行结果: