0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java SE Gold で勉強したことメモ(Enum編 その2)

Last updated at Posted at 2024-10-25

JavaのEnum型のクラスにはコンストラクタを定義することができるみたいです。
Enum型の列挙子はEnumを使用するタイミングでJVMが自動であまねくインスタンス化するらしいです。

また、JavaのEnumはほかの言語のEnumとちがってクラスとして定義されていて、Objectを継承、Serializable、Comparableを実現しているため、toString()やhashCode()、compareTo()などのメソッドが用意されています。

それを踏まえたうえで、以下のコードは次のような結果になります。

EnumSample.java
public enum EnumSample{
    Gold("Gold!"),Silver("Silver!"),Bronze("Bronze!");
    private String value;

    private EnumSample(String value){
        this.value = value;
        System.out.println(this.value);
    }

    @Override
    private String toString(){
        return this.value;
    }
}
Main.java
public Main{
    public static void main(String[] args){
        System.out.println(EnumSample.Gold);
    }
}

実行結果

Gold!
Silver!
Bronze!
Gold!

なお、EnumクラスのコンストラクタはEnum型の性質上privateにすることが義務づけられています。
そのため、privateを省略した場合は、暗黙的にprivateになります。

もしかしたらどこかで使うかもしれない?のでメモしました。
間違っている箇所があれば教えてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?