1.枚舉類型更規範,在函數形參定義為枚舉類型的時候,隻接受枚舉類型的常量。比起普通的更安全
枚舉類型成員預設被public static final修飾
class EnumTest
{
public static void doit(int val){ //可以接受任何參數
switch(val){
case ConstantsI.Constants_A:
System.out.println("ConstantsI.Constants_A");
break;
case ConstantsI.Constants_B:
System.out.println("ConstantsI.Constants_B");
break;
default:break;
}
}
public static void doit(ConstantsE val){ //隻接受枚舉類型常量,更安全
switch(val){
case Constants_A: //注意這裡的寫法 不是ConstantsE.Constants_A
System.out.println("ConstantsE.Constants_A");
break;
case Constants_B:
System.out.println("ConstantsE.Constants_B");
break;
default:break;
}
}
public static void main(String[] args)
{
EnumTest.doit(1);
EnumTest.doit(ConstantsE.Constants_A);
}
}
interface ConstantsI //一般定義
{
public static final int Constants_A = 1;
public static final int Constants_B = 2;
}
enum ConstantsE{ //枚舉
Constants_A,
Constants_B
}
2.枚舉類型的構造方法,作用?
class EnumTest
{
public static void main(String[] args){
System.out.println(ConstantsE.Constants_A.getDescription()); //輸出:我是枚舉類型A
}
}
enum ConstantsE{ //枚舉
Constants_A("我是枚舉類型A"),
Constants_B("我是枚舉類型B");
private String description;
private ConstantsE(String _description){
this.description = _description;
}
public String getDescription(){
return this.description;
}
}
3.五子棋中的枚舉類型棋子的定義
package com.ck.wuziqi;
/**
* 棋子
* @author Administrator
*
*/
public enum Chessman {
/**
* 黑、白棋子
*/
BLACK("●"),WHITE("○");
//相當于 publi static final Chessman BLACK = new Chessman("●");
private String chessman;
private Chessman(String chessman){
this.chessman = chessman;
}
public String getChessman(){
return this.chessman;
}
}
使用時,得到黑子的字元串"●"
Chessman.BLACK.getChessman()