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! ! !