枚舉的總結

 

枚舉:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章