java基础 java中枚举的应用 抽象方法问题
package com.swift.meiju; import org.junit.Test; public class Demo{ @Test public void test() { System.out.println(Meiju.C.getScore()); } }
上面测试,用了Junit
下边枚举
package com.swift.meiju; import org.junit.Test; public enum Meiju { //考试分数A B C D E 五个等级 A("90~100"),B("80~89"),C("70~79"),D("60~69"),E("0~59"); private String score; private Meiju(String score) { this.score=score; } public String getScore() { return this.score; } }
枚举是什么?
相当于
package com.swift.meiju; public class Enumer { private Enumer() {} public static final Enumer A=new Enumer(); public static final Enumer B=new Enumer(); public static final Enumer C=new Enumer(); public static final Enumer D=new Enumer(); public static final Enumer E=new Enumer(); }
有点像单例模式,只造出一个对象供外界使用;这个枚举一下造出好多个供使用,造出的对象不能改变
枚举出来的ABCDE都是可以用类名.直接调用的对象,对象可以赋值,和调用其成员方法
枚举中的对象 都是 public static final 确可以有abstract的方法 ,应该算是抽象类,可又实例化了,逻辑上都是到处都是冲突的,真是骚包的家伙
package com.swift.meiju; import org.junit.Test; public enum Meiju { //考试分数A B C D E 五个等级 A("90~100") { @Override public String getTxt() { return "优"; } },B("80~89") { @Override public String getTxt() { return "良"; } },C("70~79") { @Override public String getTxt() { return "中"; } },D("60~69") { @Override public String getTxt() { return "及格"; } },E("0~59") { @Override public String getTxt() { return "差"; } }; private String score; private Meiju(String score) { this.score=score; } public String getScore() { return this.score; } public abstract String getTxt(); }
Junit 测试
package com.swift.meiju; import org.junit.Test; public class Demo{ @Test public void test() { System.out.println(Meiju.C.getTxt()); } }
Never waste time any more, Never old man be a yong man