Javaのenum(列挙)の使い方を詳しく解説

王林
リリース: 2019-11-27 15:49:34
転載
2758 人が閲覧しました

Javaのenum(列挙)の使い方を詳しく解説

Java Enum 原則:

public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE };
ログイン後にコピー

実際、この宣言で定義された型はクラスであり、インスタンスはちょうど 4 つあります。新しいオブジェクトを構築しないこと。

したがって、2 つの列挙型の値を比較する場合、equals メソッドを呼び出す必要はなく、「==」を直接使用するだけです。 (equals() メソッドでも == を直接使用します。どちらも同じ効果があります。)

関連ビデオチュートリアルの推奨事項: Java 教育ビデオ

使用法 1:定数

JDK1.5 より前に定義した定数は、public static fianl.... でした。さて、列挙型を使用すると、関連する定数を列挙型にグループ化でき、列挙型は定数よりも多くのメソッドを提供します。

public enum Color {  
  RED, GREEN, BLANK, YELLOW  
}
ログイン後にコピー

使用法 2: switch

JDK1.6 より前の switch ステートメントは、int、char、および enum 型のみをサポートしています。列挙型を使用すると、コードを読みやすくできます。 。

enum Signal {
        GREEN, YELLOW, RED
    }

    public class TrafficLight {
        Signal color = Signal.RED;

        public void change() {
            switch (color) {
            case RED:
                color = Signal.GREEN;
                break;
            case YELLOW:
                color = Signal.RED;
                break;
            case GREEN:
                color = Signal.YELLOW;
                break;
            }
        }
    }
ログイン後にコピー

使用法 3: 列挙型に新しいメソッドを追加する

独自のメソッドをカスタマイズする場合は、列挙型インスタンス シーケンスの最後にセミコロンを追加する必要があります。また、Java では、最初に enum インスタンスを定義する必要があります。

public enum Color {
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
    // 成员变量
    private String name;
    private int index;

    // 构造方法
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

    // 普通方法
    public static String getName(int index) {
        for (Color c : Color.values()) {
        if (c.getIndex() == index) {
            return c.name;
        }
        }
        return null;
    }

    // get set 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }
    }
ログイン後にコピー

使用法 4: 列挙メソッドのオーバーライド

次に、toString() メソッドをオーバーライドする例を示します。

public class Test {
    public enum Color {
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
        // 成员变量
        private String name;
        private int index;

        // 构造方法
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }

        // 覆盖方法
        @Override
        public String toString() {
            return this.index + "_" + this.name;
        }
    }

    public static void main(String[] args) {
        System.out.println(Color.RED.toString());
    }
}
ログイン後にコピー

使用法 5: インターフェイスの実装

すべての列挙は java.lang.Enum クラスから継承します。 Java は多重継承をサポートしていないため、列挙オブジェクトは他のクラスから継承できません。

public interface Behaviour {
    void print();

    String getInfo();
    }

    public enum Color implements Behaviour {
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
    // 成员变量
    private String name;
    private int index;

    // 构造方法
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

    // 接口方法

    @Override
    public String getInfo() {
        return this.name;
    }

    // 接口方法
    @Override
    public void print() {
        System.out.println(this.index + ":" + this.name);
    }
    }
ログイン後にコピー

使用法 6: インターフェイスを使用して列挙を整理する

public interface Food {
        enum Coffee implements Food {
            BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO
        }

        enum Dessert implements Food {
            FRUIT, CAKE, GELATO
        }
    }
ログイン後にコピー

その他の関連記事とチュートリアルについては、次のサイトを参照してください: Java 入門

以上がJavaのenum(列挙)の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート