[Clase de enumeración de Java] Use la palabra clave enum para definir una clase de enumeración

Instrucciones de uso

1. La clase de enumeración definida por enum hereda la clase java.lang.Enum de forma predeterminada, por lo que no puede heredar otras clases.

2. El constructor de la clase de enumeración solo puede usar el modificador de permiso privado

3. Todas las instancias de una clase de enumeración deben enumerarse explícitamente en la clase de enumeración (, delimitado; fin). El sistema de instancia enumerado agregará automáticamente la modificación final estática pública

4. El objeto de clase de enumeración debe declararse en la primera línea de la clase de enumeración

En JDK 1.5, el objeto de la clase de enumeración definido por Enum se puede usar como una expresión en la expresión de cambio, y la cláusula de caso puede usar directamente el nombre del valor de enumeración sin agregar la clase de enumeración como una calificación.

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

 Use la palabra clave enum para definir una clase de enumeración

Proceder de la siguiente:

1. Proporcione varios objetos de la clase de enumeración actual, separe varios objetos con "," y termine con ";" al final
2. Declarar las propiedades del objeto Season: modificación final privada
3. Privatizar el constructor de la clase y asignar valores a las propiedades del objeto

Vuelva a escribir la clase de enumeración personalizada en el artículo anterior a continuación

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 + '\'' +
//                '}';
//    }
}

Como el código anterior, comentamos toString(), y el resultado de la ejecución es el siguiente:

Podemos ver que el resultado de la operación no es el valor de la dirección. Entonces, la clase principal de Season1 no es un objeto

A continuación, veamos su clase padre

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

 Agregue el código anterior al código de la siguiente manera:

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 + '\'' +
//                '}';
//    }
}

El resultado de la operación es el siguiente:

 Descripción: la clase de enumeración definida hereda de la clase java.lang.Enum de forma predeterminada

Podemos anular el método toString()

Supongo que te gusta

Origin blog.csdn.net/qq_64976935/article/details/129466636
Recomendado
Clasificación