java 基礎之枚舉

來源:互聯網
上載者:User

標籤:抽象類別   構造   test   oca   聲明   icc   round   問題:   抽象   

問題:對象的某個屬性的值不能是隨意的,必須為固定的一組取值當中的某一個

解決的方法:

1)  在setGrade方法中做推斷,不符合格式要求就拋出異常

2)  直接限定使用者的選擇,通過自己定義類類比枚舉的方式來限定使用者的輸入

    寫一個Grade類。私人建構函式,對外提供5個靜態常量表示類的執行個體

3)  jdk5中新定義了枚舉類型,專門用於解決此類問題

4)  枚舉就是一個特殊的java類,能夠定義屬性、方法、建構函式、實現介面、繼承類

packagecn.itcast.enumeration;

 

import org.junit.Test;

 

publicclass Demo1 {

    @Test

    public void test() {

       print(Grade.B);

    }

   

    public void print(Grade g) // A B C D E

    {

       String value=g.getValue();

       System.out.println(value);

    }

}

 

/*

 * class Grade{ private Grade(){ }

 * public static final Grade A=new Grade();

 * public static final Grade B=new Grade();

 * public static final Grade C=new Grade();

 * public static final Grade D=new Grade();

 * public static final Grade E=new Grade();

 *  }

 */

//怎樣定義枚舉的建構函式、方法、欄位

enumGrade {// class A 100-90 B 89-80 C 79-70 D 69-60 E 59-0

    A("100-90"), B("89-80"),C("79-70"), D("69-60"), E("59-0");// object

    private String value;

    private Grade(String value){

       this.value=value;

    }

    public String getValue(){

       return this.value;

    }

}

 

publicclass Demo1 {

    @Test

    public void test() {

       print(Grade.B);   //89-80,良

    }

   

    public void print(Grade g) // A B C D E

    {

       String value=g.getValue();

       String value2=g.localeValue();

      

       System.out.println(value+","+value2);

    }

}

 

//帶抽象方法的枚舉

enumGrade {// class A 100-90優 B89-80良 C 79-70 一般D 69-60差 E 59-0不及格

    A("100-90"){

       public String localeValue(){

           return "優";

       }

    },

    B("89-80"){

       public String localeValue(){

           return "良";

       }

    },

    C("79-70"){

       public String localeValue(){

           return "一般";

       }

    },

    D("69-60"){

       public String localeValue(){

           return "差";

       }

    },

    E("59-0"){

       public String localeValue(){

           return "不及格";

       }

    };// object

   

    private String value;

    private Grade(String value){

       this.value=value;

    }

    public String getValue(){

       return this.value;

    }

    public abstract String localeValue();

}

 

//枚舉類就是一個java類。也能夠聲明屬性。方法,建構函式

public enum Grade4 {

    A("90-100"),B("80-89"),C("70-79"),D("60-69"),E("0-59");

   

    privateString value;

    privateGrade4(String value) {

       this.value= value;

    }

   

    publicString getValue() {

       returnvalue;

    }

}

 

//枚舉類就是一個java類, 也能夠繼承抽象和實現介面

public enum Grade5 {

    // 抽象類別不能建立執行個體對象

    A("90-100"){

       //new了一個Grade5的子類執行個體

       publicString toLocaleString() {

           return"優";

       }

    }

    ,B("80-89"){

       //new了一個Grade5的子類執行個體

       publicString toLocaleString() {

           return"良";

       }

    }

    ,C("70-79"){

       //new了一個Grade5的子類執行個體

       publicString toLocaleString() {

           return"中";

       }

    }

    ,D("60-69"){

       //new了一個Grade5的子類執行個體

       publicString toLocaleString() {

           return"差";

       }

    }

    ,E("0-59"){

       //new了一個Grade5的子類執行個體

       publicString toLocaleString() {

           return"不及格";

       }

    };

   

    privateString value;

    privateGrade5(String value) {

       this.value= value;

    }

   

    publicString getValue() {

       returnvalue;

    }

   

    // 對外提供一個方法。返回枚舉的本地資訊

    // 一個方法不知道怎樣實現,能夠定義為抽象的

    publicabstract String toLocaleString();

   

}

java 基礎之枚舉

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.