package meiju; public class yunxing { public static void main(String[] args) { System.out.print(Weekday.A); } } /*class Weekday { public static final Weekday A=new Weekday(); public static final Weekday B=new Weekday(); public static final Weekday C=new Weekday(); public static final Weekday D=new Weekday(); public static final Weekday E=new Weekday(); public static final Weekday F=new Weekday(); public static final Weekday G=new Weekday(); }*/ enum Weekday { A,B,C,D,E; } //和上面構造的Weekday類功能相同
***************************************************************************************函數
如何定義枚舉的構造函數、方法和字段去封裝更多的信息this
package meiju; public class yunxing { public static void main(String[] args) { dayin(Weekday.A); } public static void dayin(Weekday g)//封裝打印函數 { String value=g.getWeekday(); System.out.print(value); } } //如何定義枚舉的構造函數、方法和字段去封裝更多的信息
enum Weekday { A("MOD"),B("TUE"); private String value; private Weekday(String value) //構造函數,必須私有化!由於若是是公有,即可以構造出除了枚舉以外的對象 { this.value=value; } public String getWeekday() //獲取,由於這個函數在主函數中還要調用,因此必須是public!! { return this.value; } }
&&&&&&&&&&&&&&&&&&&&&上下兩個程序相比較
package meiju; class yunxing { public static void main(String[] args) { System.out.print(Weekday.C); } } class Weekday { static String A = "MOD"; static String B = "TUE"; static String C = "WEN"; }
**********************************************************************************************************spa
帶抽樣方法的枚舉code
package meiju; public class yunxing { public static void main(String[] args) { dayin(Weekday.B); } public static void dayin(Weekday g)//封裝打印函數 { String value=g.Chinese(); System.out.print(value); } } //帶抽樣方法的枚舉 enum Weekday { A("MOD") { public String Chinese()//實現下面定義的抽樣方法 { return "星期一"; } } ,B("TUE") { public String Chinese() { return "星期二"; } }; private String value; private Weekday(String value) //把MOD付給A { this.value=value; } public String getWeekday() //獲取 { return this.value; } public abstract String Chinese();//定義抽樣方法,定義了以後在枚舉的對象裏必須實現抽樣方法,要不會報錯。 }
*******************************************************************************************對象
本身寫個小例子增強理解blog
package meiju; public class yunxing { public static void main(String[] args) { dayin(jieshao.C); dayin1(jieshao.C); } public static void dayin(jieshao a) { String name=a.getname(); System.out.println(name); } public static void dayin1(jieshao a) { String nianling=a.getage(); System.out.println("我今年"+nianling+"歲了"); } } enum jieshao { A("12") { public String getname() { return "我叫張三"; } }, B("13") { public String getname() { return "我叫李四"; } }, C("14") { public String getname() { return "我叫王五"; } }, D("17") { public String getname() { return "我叫趙六"; } }; private String age; private jieshao(String age) { this.age=age; } public String getage() { return this.age; } public abstract String getname(); }