[clase de enumeración Java] clase de enumeración personalizada

Uno: el uso de clases de enumeración

contenido principal:

 Cómo personalizar la clase de enumeración

 Cómo definir una clase de enumeración usando la palabra clave enum

 El método principal de la clase Enum.

 Clase Enum que implementa la interfaz.

Solo hay un número limitado de objetos de la clase, que están determinados . Los ejemplos son los siguientes:

1. Semana: lunes (lunes), ..., domingo (domingo)

2. Género: Hombre (masculino), Mujer (femenino)

3. Temporada: Primavera (Festival de Primavera)...Invierno (Invierno)

4. Método de pago: Efectivo (efectivo), WeChatPay (WeChat), Alipay (Alipay), BankCard (tarjeta bancaria), CreditCard (tarjeta de crédito)

5. Situación laboral: Ocupado, Libre, Vocación, Dimisión

6. Estado del pedido: Impago (sin pagar), Pagado (pagado), Entregado (entregado), Devuelto (devuelto), Comprobado (confirmado) Cumplido (ya distribuido),

7. Estado del hilo: creado, listo, ejecutándose, bloqueado, inactivo

 Cuando necesite definir un conjunto de constantes, se recomienda encarecidamente utilizar clases de enumeración

Implementación de la clase enum

   >JDK1.5 requiere una clase de enumeración personalizada

   > La nueva palabra clave enum de JDK 1.5 se usa para definir clases de enumeración

Si la enumeración tiene solo un objeto, se puede usar como una implementación del patrón singleton.

Propiedades de clase de enumeración

1. No se debe permitir que se cambien las propiedades de los objetos de clase de enumeración, por lo que se deben modificar con final privado.

2. Las propiedades de la clase de enumeración modificada con final privado deben asignarse en el constructor

3. Si la clase de enumeración define explícitamente un constructor con parámetros, también debe ser correspondiente al enumerar los valores de enumeración

parámetros entrantes

================================================== == ========================== Clase de enumeración personalizada

1. El constructor de la clase privatizada se asegura de que sus objetos no se puedan crear fuera de la clase.

2. Cree una instancia de la clase de enumeración dentro de la clase. Declarado como: public static final

3. Si el objeto tiene variables de instancia, debe declararse como privado final e inicializarse en el constructor.

Por ejemplo:

public class SeasonTest {
    public static void main(String[] args) {
        Season spring = Season.SPRING;
        System.out.println(spring);
    }
}
//自定义枚举类
class Season{
    //1.声明Season对象的属性:private final修饰
    private final String seasonName;
    private final String seasonDesc;

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

    //3.提供当前枚举类的多个对象:public static final
    public static final Season SPRING = new Season("春天","春暖花开");
    public static final Season SUMMER = new Season("夏天","夏日炎炎");
    public static final Season AUTUMN = new Season("秋天","秋高气爽");
    public static final Season WINTER = new Season("冬天","冰天雪地");

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

    public String getSeasonDesc() {
        return seasonDesc;
    }

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

El resultado de la operación es el siguiente:

¡gracias por ver! ! ! 

Supongo que te gusta

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