枚举,Properties,三层架构
枚举
定义固定数量的对象
public class TraLightColor {
public static TraLightColor red = new TraLightColor();
public static TraLightColor green = new TraLightColor();
public static TraLightColor yellow = new TraLightColor();
// 构造方法私有化,只有本类中可以调用
private TraLightColor(){
}
}
这种方式比较麻烦,我们可以使用枚举的方式来达到目的:初始化好固定数量的对象,直接使用。除此以外,其它的用法跟类差不多。
枚举的定义
public enum WeekDay {
// 创建并初始化好固定数量的对象,类型为当前类型(WeekDay)
MON,TUE,WED,THU,FRI,SAT,SUN ;
// WeekDay MON ;
// WeekDay TUE ;
}
- 枚举的构造方法必须是private
- 如果枚举的构造方法带参数,则定义枚举值的时候必须传值,且能匹配到对应类型(数量/个数/顺序)的构造方法
- 枚举中可以定义属性和方法
- 所有的枚举都默认继承Enum,所以不能继承其他的类,单继承
- 枚举值必须写在最上面,扩展的内容写在后面
- 枚举也可以实现其他接口方法
public enum WeekDay implements EnumInterface {
/*
* name:枚举值的字符串
* ordinal:枚举值对应的索引
*/
// 创建并初始化好固定数量的对象,类型为当前类型(WeekDay)
MON("星期1",0),TUE("星期2",1),WED("星期3",2),THU("星期4",3),FRI("星期5",4),SAT("星期6",5),SUN("星期7",6) ;
private String weekName ;
private int weekOrdinal ;
// static WeekDay MON = new WeekDay("星期1");
// static WeekDay TUE = new WeekDay("星期2");
// 默认定义一个无参数的private的构造方法,必须是private
private WeekDay(String name,int count){
// System.out.println("我是WeekDay的私有的构造方法。。"+name);
this.weekName = name;
this.weekOrdinal = count ;
}
public String getWeekName(){
return weekName ;
}
public int getWeekOrdinal(){
return weekOrdinal;
}
public void study(){
System.out.println("好好学习,天天向上。");
}
//重写继承的接口中的方法
@Override
public void method() {
System.out.println("这是接口中的方法实现