Enum枚舉類中爲什麼構造函數必須是私有的

爲什麼枚舉類中一定要有私有構造方法呢?

枚舉被設計成是單例模式,即枚舉類型會由JVM在加載的時候,實例化枚舉對象,你在枚舉類中定義了多少個就會實例化多少個,JVM爲了保證每一個枚舉類元素的唯一實例,是不會允許外部進行new的,所以會把構造函數設計成private,防止用戶生成實例,破壞唯一性。

例子:
NumberForCaseEnum

public enum NumberForCaseEnum {
    
    ONE(1),
    TWO(2),
    THREE(3),
    FOUR(4);
    private final int index;

    private NumberForCaseEnum(int index){
        this.index=index;
    }
    public int getIndex(){
        return this.index;
    }
}

運行類:

	public static void main(String[] args) {
		SpringApplication.run(SecurityApplication.class, args);
		//可以通過循環遍歷拿值
		for(NumberForCaseEnum x:NumberForCaseEnum.values()){
			System.out.println("枚舉值:"+x.getIndex());
		}
		//也可以單獨拿值
		System.out.println(NumberForCaseEnum.ONE.getIndex());
	}

運行截圖:
在這裏插入圖片描述
關注公衆號,獲取更多資源
在這裏插入圖片描述

每天進步一點點,開心也多一點點

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