package com.yin;
/**
* 枚举就是有限的多个对象;将这几个对象列出来放在枚举类中,这里是SPRING,SUMMER,AUTUMN,WINTER
* 序号从零开始,例如这里SPRING的序号是0,WINTER的序号是3;
* 同样的和类一样,可以有多个属性,例如这里有name和desc属性;但是你同时只能访问到某个元素的属性
* 但是构造方法不可以由外部调用,只是用于内部调用;
* 构造方法一般有几个元素就调用几次,这里应该是调用4次
* @author Administrator
*
*/
public enum Season {
SPRING("春天","春暖花开"),
SUMMER("夏天","夏日炎炎"),
AUTUMN("秋天","秋高气爽"),
WINTER("冬天","寒冬腊月");
private final String name;
private final String desc;
private Season(String name,String desc){
System.out.println("构造方法被调用");
this.name = name;
this.desc = desc;
}
public String getName(){
return name;
}
public String getDesc(){
return desc;
}
public void show(){
System.out.println("这是一个季节");
}
}
public static void main(String[] args) {
/**
* 获取一个枚举类对象
* 其实就是获取枚举类的其中一个元素,这里获取的是SPRING,是Season类型的
*/
Season season = Season.SPRING;
/**
* 获取枚举类的属性,其实是获取某个元素的属性,这里获取的是SPRING的name和desc属性
*/
System.out.println(season.getName()+","+season.getDesc());
/**
* name()获取枚举类元素的名称,这里是SPRING;
* ordinal()获取枚举类元素的序号,从0开始,这里是0;
*/
System.out.println(season.name()+","+season.ordinal());
/**
* values()获取枚举类的所有枚举元素
*/
Season[] seasons = Season.values();
for (Season s : seasons) {
System.out.println("枚举元素的name属性:"+s.getName()+",desc属性:"+s.getDesc()+",name:"
+s.name()+",ordinal:"+s.ordinal());
}
/**
* 根据枚举元素的名字,获取指定枚举元素,用枚举类型接收
*/
Season resule = Season.valueOf("SPRING");
System.out.println(resule);//SPRING
}
}