枚举与注解
一、枚举类的构建与枚举对象的应用:
1、枚举类的特性是具有有限个对象(如月份、季节…),单例模式可以看作是枚举的特殊(即只有一个对象的类)。
枚举类型的不可以加set方法;枚举类是私有的,枚举类的对象必须在类内造,在类外不可以造对象;
2、自定义枚举类:
package com.atguigu.enumera;
public class TestSeason {
public static void main(String[] args) {
//输出
Season spring=Season.SPRING;
System.out.println(spring);
spring.show();
System.out.println(spring.getSeasonName());
System.out.println();
}
}
//枚举类
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;
}
public void show() {
// TODO Auto-generated method stub
System.out.println("这是一个季节。");
}
//3、通过公共的方法来调用属性
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
//4、创建枚举类的对象,一旦造出之后拒绝修改。
public static final Season SPRING=new Season("spring","春暖花开");
public static final Season SUMMER=new Season("summer","夏日炎炎");
public static final Season AUTUMN=new Season("autumn","秋高气爽");
public static final Season WINTER=new Season("winter","白雪皑皑");
@Override
public String toString() {
return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
}
}
3、使用enum定义枚举类:
(1)、枚举类:
使用enum定义枚举类,必须把声明的对象放在最上边;
enum Season implements info{ //实现接口一定要重写抽象方法。
//原型 public static final Season SPRING=new Season("spring","春暖花开");
// SPRING("spring","春暖花开"), //逗号
//重写show()方法;使用enum定义枚举类,必须把声明的对象放在最上边;
/* 枚举类定义的4个对象 */