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()