Java枚举小结
jopen
9年前
-
如何定义一个枚举类?
1 //定义了4个等级 2 enum Level{ 3 A,B,C,D 4 }
-
枚举类的实质:
class Level{ public static final Level A = new Level(); public static final Level B = new Level(); public static final Level C = new Level(); public static final Level D = new Level(); }
-
枚举类可以定义构造方法,属性,方法
enum Level{ A("85~100","优"), B("75~84","良"), C("60~74","中"), D("60以下","差"); private String score; private String ctype; private Level(String score,String ctype){ //构造方法必须是私有的 this.score = score ; this.ctype = ctype; } public String getscore(){ return this.score; } public String getctpye(){ return this.ctype; } } public class Enumation { public static void main(String[] args) { System.out.println(Level.A.getscore()); System.out.println(Level.A.getctpye()); Level[] ls = Level.values(); } } //输出结果 //85~100 //优
- 带抽象方法的枚举类
enum Level{ A("85~100"){ @Override public String getctpye() { return "优"; } }, B("75~84") { @Override public String getctpye() { return "良"; } }, C("60~74") { @Override public String getctpye() { return "中"; } }, D("60以下") { @Override public String getctpye() { return "差"; } }; private String score; private Level(String score){ this.score = score ; } public String getscore(){ return this.score; } public abstract String getctpye(); //每个对象都要重写抽象方法 }
-
常用方法
public class Enumation { public static void main(String[] args) { System.out.println(Level.C.name()); //返回枚举常量的名称 System.out.println(Level.C.ordinal()); //返回枚举常量的序号(下标从0开始) Level[] ls = Level.values(); //遍历枚举类型 for(Level l :ls){ System.out.println(l); } String letter = "B" ; //返回带指定名称的指定枚举类型的枚举常量,若letter为非枚举类型会抛异常java.lang.IllegalArgumentException: No enum constant Level b = Level.valueOf(letter); System.out.println(b.B); } }
输出:
C
2
A
B
C
D
B