java枚舉類


使用enum聲明,默認直接繼承了java.lang.Enum類,而不是Object類;

枚舉類的對象是固定的,實例個數有限,不可以再new( ),枚舉對象后可以跟()。

枚舉元素必須位於枚舉類體中的最開始部分,枚舉元素后要有分號與其他成員分隔。

枚舉類的構造方法的權限修飾符默認是private;

一旦枚舉對象后面加上{},那么該對象實際是枚舉匿名內部類對象;

所有枚舉類都提供一個靜態的values()方法(返回該枚舉類所有對象組成的數組),便於遍歷所有枚舉對象;

所有枚舉類都提供一個靜態的valueOf(String name)方法, 返回枚舉類中對象名等於 name的對象。

 

Egpublic enum Color{

       RED(), GREEN(){}, BLUE{};

}

 

 

package reviewDemo;

//枚舉

 

enum Color{

    Green,Blue,Yellow;

   

    @Override

    public String toString() {

        String ret = super.toString();

        switch (this) {

        case Green:

            ret = "綠色";

            break;

           

        case Blue:

            ret = "藍色";

            break;

           

        case Yellow:

            ret = "黃色";

            break;

 

        default:

            break;

        }

       

        return ret;

    }

   

}

 

class Personp{

    Color c = Color.Blue;

    void show(){

        System.out.println(c);

    }

}

 

public class Demo18 {

    public static void main(String[] args) {

        Color []color = Color.values();

        for (Color c : color) {

            System.out.println(c);

        }

        new Personp().show();

    }

}

輸出:

綠色

藍色

黃色

藍色

 

 

枚舉類覆寫接口抽象方法的兩種方式:

在枚舉類中實現接口的抽象方法;

在枚舉匿名內部類中實現接口的抽象方法;

 

interface I{

    void show();

}

 

enum Color implements I{

    RED(){

    public void show(){

        }

    }, GREEN{

    public void show(){

        }

    }, BLUE{

    public void show(){

        }

    };

}

 

enum Color implements I{

    RED(), GREEN, BLUE;

    public void show() {

    }

}

 

 

 

 

我的總結:

枚舉不可以new();即便是反射也不可以!

 

 

備注:一個類如果沒有構造方法,那么一定有相對應的某個方法可以獲取對象!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM