publicclassTest01{publicstaticvoidmain(String[] args){// SPRING SUMMER AUTUMN WINTER// 枚举方法// 枚举类名.枚举对象获取枚举对象,name()方法获取枚举项名称String name =Season.SUMMER.name();System.out.println(name);//ordinal()方法获取枚举类中枚举项索引int ordinal =Season.SPRING.ordinal();System.out.println(ordinal);/// compareTo比较两个枚举项,并返回它们之间索引差int i =Season.AUTUMN.compareTo(Season.SPRING);System.out.println(i);//toString()方法返回枚举项的名称String s =Season.AUTUMN.toString();System.out.println(s);// valueOf方法获取某个类中某个枚举项Season autumn =Enum.valueOf(Season.class,"AUTUMN");System.out.println(autumn);//values() 静态方法获取枚举类中所有枚举项Season[] values =Season.values();for(Season value : values){System.out.println(value);}}}publicenumSeason{//定义一个枚举类//每一个枚举项都是枚举类的对象SPRING("春",3){@Overridepublicvoidmethod(){System.out.println((this.name)+"年龄是"+(this.age));}},SUMMER("夏",6){@Overridepublicvoidmethod(){System.out.println((this.name)+"年龄是"+(this.age));}},AUTUMN("秋",10){@Overridepublicvoidmethod(){System.out.println((this.name)+"年龄是"+(this.age));}},WINTER("冬",1){@Overridepublicvoidmethod(){System.out.println((this.name)+"年龄是"+(this.age));}};//定义成员变量publicString name;publicint age;//定义空参构造privateSeason(){};//定义有参构造privateSeason(String name,int age){this.name = name;this.age = age;}//定义抽象方法,枚举项对象方法必须重写publicabstractvoidmethod();}
注解:即是对程序进行解释和标签(本意简化代码)
public@interfaceAnno1{//自定义注解格式 public 数据类型 属性名 () default 默认值;//定义基本类型publicint i ()default1;//定义String类型publicStringStu()default"张";//定义class字节码类型publicClass cla ()defaultAnno2.class;//定义枚举型publicSeason sea ()defaultSeason.SUMMER;//定义注解型publicAnno2 ANNO ()default@Anno2;//测试value 特殊赋值publicString value ();}public@interfaceAnno2{//定义测试注解}//如果定义注解某些属性没有赋值,需在使用注解时小括号手动赋值,多个值用逗号隔开//@Anno1(i=1, Stu="张")//如果只有一个属性名 value没有赋值,再使用时可以省略value,直接赋值@Anno1("lihua")publicclassAnnoDemo{}