枚舉:
switch()後面只能跟byte,char,short,int類型的,還可以是枚舉,不能是String,long類型的。
//枚舉的使用switch()後面只能跟byte,char,short,int類型的,還可以是枚舉,不能是String,long類型的。
//枚舉的基本使用
public enum Color
{
Red, White, Blue, Black
}
public class ColorTest
{
public static void main(String[] args)
{
Color myColor = Color.Blue;
System.out.println(myColor);
System.out.println("----------------");
for(Color color : Color.values())
{
System.out.println(color);
}
}
}
// 枚舉的構造方法,必須跟對象的賦值一致
public enum Coin
{
penny("hello"), nickel("world"), dime("welcome"), quarter("hello world");
private String value;
public String getValue()
{
return value;
}
Coin(String value)
{
this.value = value;
}
public static void main(String[] args)
{
Coin coin = Coin.quarter;
System.out.println(coin.getValue());
}
}
public class EnumTest
{
public static void doOp(OpConstant opConstant)
{
switch (opConstant)
{
case TURN_LEFT:
System.out.println("向左轉");
break;
case TURN_RIGHT:
System.out.println("向右轉");
break;
case SHOOT:
System.out.println("射擊");
break;
}
}
public static void main(String[] args)
{
doOp(OpConstant.TURN_LEFT);
}
}
enum OpConstant
{
TURN_LEFT, TURN_RIGHT, SHOOT
}
//enum的遍歷.values()顯示enum中的所有對象
public class ShowEnum2
{
public static void main(String[] args)
{
for(OpConstant c : OpConstant.values())//
{
System.out.printf("%d, %s, %n", c.ordinal(), c);//這是格式化操作,%d表示整型輸出,%s表示字符串輸出,%n表示換行,c.ordinal()輸出返回枚舉常量的序數
}
}
}
//枚舉的比較,就是對象的比較
public static void main(String[] args)
{
enumCompareTo(OpConstant.valueOf(args[0]));//將裏面的字符參數包裝成enum類型
}
public static void enumCompareTo(OpConstant constant)
{
System.out.println(constant);
for(OpConstant c : OpConstant.values())
{
System.out.println(constant.compareTo(c));
}
}
輸出結果:TURN_RIGHT 或者 TURN_LEFT
1 或者2
0 或者1
-1 或者0