ホームページ >Java >&#&チュートリアル >Java 列挙クラスの基本的な使用法

Java 列挙クラスの基本的な使用法

PHPz
PHPz転載
2023-05-08 18:04:081468ブラウズ

1. 列挙規則

  • 列挙クラスのオブジェクトはクラス内で定義できますが、新しいオブジェクトはサポートされていません。 #Enumeration 列挙クラスには他のクラスと同じコンストラクターがあり、複数のメソッドを持つことができます

  • 列挙クラスの構築メソッドはプライベートである必要があり、メンバー変数はパブリックにすることができますまたは private

  • 理由: 他の新しいオブジェクトがサポートされていないため、列挙クラスのコンストラクターはこのクラスでのみ呼び出すことができます。そのため、自然なコンストラクターはプライベートです。コード例 :

    package com.meijulei;
    //枚举类
    public enum Cat {
        A("小明",12),B("小花",22),C("小红",23),D("小蓝",30),E("小绿",20),F("小黄",32);
        public String name;
        private int age;
        private Cat(){
        }
        private Cat(String a,int b){
            name=a;
            age=b;
        }
        public void m1(){
            System.out.println("姓名为:"+name+",年龄为:"+age);
        }
    }
    //调用
    package com.meijulei;
    import com.meijulei.Cat;
    public class Test {
        public static void main(String[] args) {
            Cat a=Cat.A;
            a.m1();
        }
    }
  • 2. 列挙の数

注: 列挙の数はヒープ内の数を指し、これは列挙クラスで宣言されたオブジェクトの数です。

3. 列挙型クラスで一般的に使用される関数

**Cat.C.ordinal()**関数は、列挙型クラス内のオブジェクトの位置を計算します。中央 (0 から計算) Cat.C.compareTo(Cat.E) は 2 つのオブジェクトの差を比較し、後のオブジェクトから前のオブジェクトを減算します。

A("小明",12),B("小花",22),C("小红",23),D("小蓝",30),E("小绿",20),F("小黄",32);
		System.out.println(Cat.E.ordinal());
        System.out.println(Cat.C.compareTo(Cat.E));

Java 列挙クラスの基本的な使用法//Output

//4

//-2

4. 列挙型クラスを実装する

次に、簡単なデモの例を見てみましょう:

/**
 * java枚举
 */
public class Enum {
    public static void main(String[] args) {
        System.out.println(Season.SPRING);
        System.out.println(Season.SUMMER);
        System.out.println(Season.AUTUMN);
        System.out.println(Season.WINTER);
    }
}

// 定义的枚举类
enum Season {
    // 枚举定义的常量对象必须在最前面
    SPRING("春天","万物复苏"),
    SUMMER("夏天","烈日炎炎"),
    AUTUMN("秋天","硕果累累"),
    WINTER("冬天","寒冷刺骨");

    private String name;
    private String desc;

    private Season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
}

出力:

シーズン{name='春', desc='万物の復活'}

シーズン{name='夏', desc='灼熱の太陽'}

シーズン{name ='Autumn', desc='Fruitful'}

Season{name='Winter', desc='Bitter-cold'}

5. 列挙型クラス使用時の注意事項


enum キーワードを使用して列挙型クラスを開発すると、Eunm クラスがデフォルトで継承され、最終的に変更されたクラスになります。

パラメータなしのコンストラクターを使用している場合は、括弧を省略できます。列挙内で直接

// 枚举定义的常量对象必须在最前面
SPRING("春天", "万物复苏"),
SUMMER("夏天", "烈日炎炎"),
AUTUMN("秋天", "硕果累累"),
WINTER("冬天", "寒冷刺骨"),
Other, Shit;

Season() {
}

private Season(String name, String desc) {
    this.name = name;
    this.desc = desc;
}

以上がJava 列挙クラスの基本的な使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。