JavaNote 2.3枚舉、分支、循環

一、循環

1、while(布爾表達式){   }//只要表達式爲true,就會循環下去
2、do{   }while(布爾表達式)//先執行語句,然後判斷是否滿足條件,爲true則循環
3、for(初始化;布爾表達式;更新循環變量){    }
4、增強型for循環,for(聲明變量:數組/集合){     }

二、switch

switch(expression){
    case value :
       //語句
       break; //可選
    case value :
       //語句
       break; //可選
    //你可以有任意數量的case語句
    default : //可選
       //語句
}
 注:1、switch中的變量支持byte、short、int、 char、String
     2、case 標籤必須爲字符串常量或字面量
     3、case語句間必須使用break,避免穿透
三、enum

常用方法:
int compareTo(E o);比較此枚舉與指定對象的順序。
Class<E> getDeclaringClass()返回與此枚舉常量的枚舉類型相對應的 Class 對象。
int ordinal()返回枚舉常量的序數(它在枚舉聲明中的位置,其中初始常量序數爲零)。
static T<T extends Enum> valueOf(String name)返回帶指定名稱的指定枚舉類型的枚舉常量。
說明:1、可以把enum當成class來理解,當使用enum關鍵字時,編譯器便會生成一個繼承java.lang.Enum的子類。
      2、enum的構造方法只能使用private
      3、枚舉不能有finalize()方法

例:


public class Test12 {
     enum Test10 {
        dengyao(2,2,3),dengbian(2,2,2),budeng(2,3,4);
         Test10(int a,int b,int c){
            this.zuo = a;
            this.you = b;
            this.di = c;
        }
        private int zuo;
        private int you;
        private int di;
        public String toString(){
            return super.toString()+ "("+ zuo+"," + you +","+ di+")";
        }
    }
     enum Test11{
        A(Test10.dengbian),B(Test10.dengyao),C(Test10.dengyao);
        private Test10 test10;
        Test11(Test10 test10){
            this.test10 = test10;
        }
        public String toString(){
            return super.toString() + "……" + test10;
        }

    }
    public static void main(String args[]){
        System.out.println(Test10.budeng);
        System.out.println(Test11.A);
        System.out.println(Test11.valueOf("A"));
        System.out.println(Test11.valueOf(Test11.class,Test11.A.name()));//這個方法和上面的方法具有相同的效果,上面的是編譯器提供的,這個是Enum自己的方法
        Test11 a[] = Test11.values();//編譯器爲我們添加的靜態的values()方法
        for(Test11 test11 : a){
            System.out.println(test11);
        }
    }
}



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