[Classe d'énumération Java] Utilisez le mot-clé enum pour définir une classe d'énumération

Mode d'emploi

1. La classe d'énumération définie par enum hérite de la classe java.lang.Enum par défaut, elle ne peut donc pas hériter d'autres classes

2. Le constructeur de la classe d'énumération ne peut utiliser que le modificateur d'autorisation privé

3. Toutes les instances d'une classe d'énumération doivent être explicitement répertoriées dans la classe d'énumération (, délimité ; fin). Le système d'instance répertorié ajoutera automatiquement la modification finale statique publique

4. L'objet de classe d'énumération doit être déclaré sur la première ligne de la classe d'énumération

Dans JDK 1.5, l'objet de la classe d'énumération définie par Enum peut être utilisé comme expression dans l'expression switch, et la clause case peut directement utiliser le nom de la valeur d'énumération sans ajouter la classe d'énumération comme qualification

================================================= =======================

 Utilisez le mot-clé enum pour définir une classe d'énumération

Procédez comme suit:

1. Fournir plusieurs objets de la classe d'énumération actuelle, séparer plusieurs objets avec "," et terminer par ";" à la fin
2. Déclarez les propriétés de l'objet Saison : modification finale privée
3. Privatiser le constructeur de la classe et attribuer des valeurs aux propriétés de l'objet

Réécrivez la classe d'énumération personnalisée dans l'article précédent ci-dessous

public class SeasonTest01 {
    public static void main(String[] args) {
        Season1 summer = Season1.SUMMER;
        System.out.println(summer);
    }
}
//使用enum关键词枚举类
enum Season1{
    //1.提供当前枚举类的多个对象,多个对象之间用“,“隔开,末尾对象";"结束
    SPRING ("春天","春暖花开"),
    SUMMER ("夏天","夏日炎炎"),
    AUTUMN ("秋天","秋高气爽"),
    WINTER ("冬天","冰天雪地");


    //2.声明Season对象的属性:private final修饰
    private final String seasonName;
    private final String seasonDesc;

    //3.私有化类的构造器,并给对象属性赋值
    private Season1(String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }


    //4.其他诉求1:获取枚举类对象的属性
    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    //4.其他诉求1:提供toString()
//    @Override
//    public String toString() {
//        return "Season1{" +
//                "seasonName='" + seasonName + '\'' +
//                ", seasonDesc='" + seasonDesc + '\'' +
//                '}';
//    }
}

Comme le code ci-dessus, nous commentons toString(), et le résultat courant est le suivant :

Nous pouvons voir que le résultat de l'opération n'est pas la valeur de l'adresse. Ainsi, la classe parente de Season1 n'est pas un objet

Ensuite, regardons sa classe parent

System.out.println(Season1.class.getSuperclass());

 Ajoutez le code ci-dessus au code comme suit :

public class SeasonTest01 {
    public static void main(String[] args) {
        Season1 summer = Season1.SUMMER;
        System.out.println(summer);

        System.out.println(Season1.class.getSuperclass());
    }
}
//使用enum关键词枚举类
enum Season1{
    //1.提供当前枚举类的多个对象,多个对象之间用“,“隔开,末尾对象";"结束
    SPRING ("春天","春暖花开"),
    SUMMER ("夏天","夏日炎炎"),
    AUTUMN ("秋天","秋高气爽"),
    WINTER ("冬天","冰天雪地");


    //2.声明Season对象的属性:private final修饰
    private final String seasonName;
    private final String seasonDesc;

    //3.私有化类的构造器,并给对象属性赋值
    private Season1(String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }


    //4.其他诉求1:获取枚举类对象的属性
    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    //4.其他诉求1:提供toString()
//    @Override
//    public String toString() {
//        return "Season1{" +
//                "seasonName='" + seasonName + '\'' +
//                ", seasonDesc='" + seasonDesc + '\'' +
//                '}';
//    }
}

Le résultat de l'opération est le suivant :

 Description : La classe d'énumération définie hérite de la classe java.lang.Enum par défaut

Nous pouvons remplacer la méthode toString()

Je suppose que tu aimes

Origine blog.csdn.net/qq_64976935/article/details/129466636
conseillé
Classement