🌊

100DaysOfJava - [Day 4] 列挙型 ~その2~

2024/04/24に公開

列挙型のコンストラクタ

  1. privateコンストラクタの定義

    列挙型では、privateなコンストラクタを定義することができます。この場合、列挙型の要素は列挙型内でしかインスタンス化できません。

    public enum Season {
        SPRING("March to May"),
        SUMMER("June to August"),
        AUTUMN("September to November"),
        WINTER("December to February");
    
        private final String description;
    
        private Season(String description) {
            this.description = description;
        }
    
        public String getDescription() {
            return description;
        }
    }
    
  2. publicコンストラクタの制限

    一方で、列挙型ではpublicなコンストラクタを定義することはできません。列挙型の要素は事前に定義された定数であり、インスタンス化は列挙型内でのみ行われるため、publicコンストラクタを定義する必要性がないためです。

列挙型の利用例

public class EnumExample {
    public static void main(String[] args) {
        Season currentSeason = Season.SPRING;
        System.out.println("Current season is " + currentSeason);
        System.out.println("Description: " + currentSeason.getDescription());
    }
}

列挙型の利点の再確認

  • 列挙型は定数の集合を簡潔に表現できる。
  • 定数ごとに固有のメソッドやフィールドを持つことができ、コードの読みやすさを向上させる。

結論

列挙型は、定数の集合を効果的に表現し、型安全性を提供する強力なツールです。privateコンストラクタを利用することで、列挙型の要素に固有の動作や情報を持たせることができます。

GitHubで編集を提案

Discussion