Clase de enumeración de caminos de aprendizaje de Java
Visión general
En la teoría de las matemáticas y la informática, una enumeración de un conjunto es un programa que enumera todos los miembros de algún conjunto de secuencia finito, o un recuento de objetos de un tipo específico. Estos dos tipos a menudo se superponen. --Wikipedia
El tipo enumerado es parte de las nuevas características de Java 5, es un tipo de datos especial.
Su característica especial es que es un tipo de clase pero tiene más restricciones especiales que los tipos de clase ordinarios, pero la existencia de estas restricciones también crea la simplicidad, seguridad y conveniencia de los tipos de enumeración.
La clase de enumeración tiene las siguientes características:
- El
enum
tipo definido siempre se heredajava.lang.Enum
y no se puede heredar; enum
Instancias que solo se pueden definir , pero que losnew
operadores no pueden crearenum
;- Cada instancia definida es la única instancia del tipo de referencia;
- Puede utilizar
enum
tipos paraswitch
declaraciones.
Uno, crea una clase de enumeración
En los programas de Java, utilizando la clase de enumeración enum
de palabras clave para definir, utilizar una coma entre las diversas constantes definidas , para dividir.
public class Demo {
public static void main(String[] args) {
System.out.println(Weekday.SUN);
}
}
enum Weekday {
SUN, MON, TUE, WED, THU, FRI, SAT;
}
2. Operaciones comunes
1. name()
Método
Devuelve la forma de cadena del nombre de la constante.
System.out.println(Weekday.SUN.name()); // SUN
2. ordinal()
Método
Devuelve el valor de índice de la constante.
En la clase de enumeración, cada constante tiene un valor de índice como una matriz, y el valor de índice está relacionado con la posición de la constante. El valor del índice de cambiar el orden de la constante también cambiará.
System.out.println(Weekday.SUN.ordinal()); // 0
3. valueOf()
Método
Devuelve la constante de enumeración del valor de cadena especificado.
System.out.println(Weekday.valueOf("SUN")); // SUN
4. Atravesar
Podemos experimentar una for
declaración para atravesar la clase de constantes de enumeración.
for (Weekday var : Weekday.values()) {
System.out.print(var + " ");
} // SUN MON TUE WED THU FRI SAT
5. switch
Uso en declaraciones
Scanner scan = new Scanner(System.in);
Weekday day = Weekday.valueOf(scan.nextLine());
switch (day) {
case SUN:
System.out.println("SUN");
break;
case MON:
System.out.println("MON");
break;
default:
System.out.println("Others");
}
Tres, uso avanzado
¿Qué tipo de constantes hay en la clase de enumeración?
Cada constante de la clase de enumeración es en realidad una instancia de la clase de enumeración.
System.out.println(Weekday.SUN.getClass()); // class Weekday
Dado que cada constante es una instancia de una clase de enumeración, los métodos y propiedades definidos en la clase de enumeración también deben aplicarse a cada instancia.
public class Demo {
public static void main(String[] args) {
System.out.println(Weekday.SUN.getChinese()); // 星期天
}
}
enum Weekday {
SUN("星期天", 7), MON("星期一", 1), TUE("星期二", 2),
WED("星期bai三", 3), THU("星期四", 4), FRI("星期五", 5),
SAT("星期六", 6);
private String chinese;
private int day;
Weekday(String name , int day) {
this.chinese = name;
this.day = day;
}
public String getChinese() {
return chinese;
}
}
¡Resulta que es factible, por lo que podemos expandir el uso de nuestras constantes agregando propiedades y métodos a la clase de enumeración!