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?

More than 5 years have passed since last update.

ファッ⁉ enumってなんや?

Posted at

どーも、ふぎとです。

最近はオブジェクト指向の学習を進める日々・・・。
進めるうち、classでもinterfaceでもない、
enumなる型に遭遇。

調べてみると「列挙型」というものだそう。

列挙型?

列挙型はclassでもinterfaceでもない、「第3のクラス宣言」。
特徴は、宣言と同時にその型のインスタンスが生成される
ということ。そしてそれ以降、その型のインスタンスは生
成できず、宣言時に作られたインスタンスしか使えない。
この「間違った値を使えない性質」を「型の安全性が保証
されている
」という(らしい)。

public enum Language{
    JAPANESE,
    ENGLISH,
    CHINESE
}

↑宣言した時点で、Language型のインスタンス"JAPANESE",
"ENGLISH","CHINESE"が作成される。どんな天才でもこれ
以降Language型のインスタンスを新たに作ることはできない

使い方

列挙型のインスタンスを使うときは、"(型名).(列挙子=インスタンス名)"
という風に記述する。というのも列挙型のインスタンスは、型の宣言時
から存在するstaticなインスタンスだからだ(らしい)。

import java.util.Arrays;
import java.util.List;

public class UseEnum{
    public static void main(String[] args){
        List<Country> list = Arrays.asList(
                             new Country("Japan", Language.JAPANESE),
                             new Country("America", Language.ENGLISH),
                             new Country("England", Language.ENGLISH),
                             new Country("CHINA", Language.CHINESE) );
        list.forEach(System.out::println);
    }
}

まとめ

・列挙型enumはクラス宣言のひとつ
・特徴は「型の宣言と同時にインスタンスが生成される」こと
・「誤った値を指定できない」ことを「型の安全性が保障され
 ている」という
・列挙型のインスタンスはstaticなインスタンスになる
・そのため使用時は"(型名).(列挙子)"の形で記述する

(P.S.)
もっと勉強します(+o+)

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?