枚举类型
用途:用于描述对象个数有限(固定)的类型
在代码编译的过程中enum会单独的编译成一个字节码文件
枚举类不可以被继承,相当于被final修饰,其枚举值都为静态常量值,一般全部大写!
枚举类实现了Comparable ,所以可以使用compareTo()方法;
第一种格式:
自己实现:使用老汉式多个单例
在一个类中创建多个该类对象;
class week{
private week(){}
public static final week MON = new week();
public static final week TUE = new week();
public static final week WEN = new week();
public static final week THR = new week();
public static final week FRI = new week();
public static final week SAT = new week();
public static final week SUN = new week();
}
枚举实现
enum week{//声明一个枚举类型
MON,TUE,WEN;//每一项都被称为枚举项
}
第二种格式
class week{//同样使用老汉式来确定对象的个数
private String name;
private week(){}
private week(String name){
this.name = name;
}
public static final week MON = new week("星期一");
public static final week TUE = new week("星期二");
public static final week WEN = new week("星期三");
public String getNmae(){
retuen name;
}
}
枚举实现
enum week{
MON("星期一"),TUE("星期二");//第一行必须写枚举项
private String name;
private week(String name){
this.name = name;
}
public String getNmae(){
retuen name;
}
}
第三种格式
自己实现
class week{//同样使用老汉式来确定对象的个数
private String name;
private week(){}
private week(String name){
this.name = name;
}
public static final week MON = new week("星期一");
public static final week TUE = new week("星期二");
public static final week WEN = new week("星期三");
public String getNmae(){
retuen name;
}
}
abstract class week{
private String name;
private week(String name){
this.name = name;
}
public abstract void show();
public static final week MON = new week("星期一"){
public void show(){
System.out.println("今天是"+getName());
}
};
public String getNmae(){
retuen name;
}
}
枚举实现
enum week{
MON("星期一"){
@Override
public void show() {
System.out.println("today is"+getName());
}
};
private String name;
private WeekDay32(String name) {
this.name = name;
}
public String getName() {
return name;
}
public abstract void show();
}
枚举使用的注意事项
所有的枚举项都用逗号分隔;
枚举类型也有自己的构造方法,默认是无参的;
枚举也可以有自己抽象方法,但是在枚举一定要实现
枚举的常用方法:
1.compareTo()方法 序列号
2.ordinal() 0 1 2 3 4 ...
3.name()
4.toString()
5.values()获取所有的枚举项