枚举使用enum关键字来声明,与类同级。枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用public和internal。
枚举是值类型,隐式继承自System.Enum,不能手动修改。System.Enum本身是引用类型,继承自System.ValueType。
枚举都是隐式密封的,不允许作为基类派生子类。
枚举类型的枚举成员均为静态,且默认为Int32类型。
每个枚举成员均具有相关联的常数值。此值的类型就是枚举的底层数据类型。每个枚举成员的常数值必须在该枚举的底层数据类型的范围之内。如果没有明确指定底层数据类型则默认的数据类型是int类型。
枚举成员不能相同,但枚举的值可以相同。
枚举最后一个成员的逗号和大括号后面的分号可以省略
单列模式是广为流传的设计模式中的一种。本质上,单例模式是一个只允许创建一个实例,并提供对这个实例简单的访问途径的类。一般而言,单例模式在创建实例时 不允许传递任何参数-否则不同参数导致不同的实例创建,就会出现问题!(如果同一个实例可以被同参的不同请求所访问,那么工厂模式会更适合。)
这是个人用枚举实现一个简单的单列模式
public enum Elvis {
instance("wangfabo", 1);
private final int id;
private final String name;
Elvis(String n, int i) {
id=i;
name=n;
}
public void leaveTheBuilding() {
System.out.println("name:"+name+" id:"+id);;
}
public Elvis getInstance(){
return instance;
}
}
枚举是不可以被继承的.
希望以上对你有所帮助。 |