Curso Avanzado de Java SE

Curso Avanzado de Java SE

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Enumerations

15/40

Lectura

Los enumerations son tipos de datos muy especiales pues es el único tipo de dato que posee una colección de constantes, al ser constantes estaremos obligados a escribirlos con mayúsculas.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 29

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

No entendí

    public enum Day{
        SUNDAY("Domingo"),
        MONDAY("Lunes"),
        TUESDAY("Martes");

        private String spanish;
        private Day(String s){
            spanish = s;
        }

        public String getSpanish(){
            return spanish;
        }

    }

por que cuando imprimo

 System.out.println(Day.MONDAY.getSpanish());

me trae el nombre en español ?
en que momento estoy pasando le algo al constructor de Day ?

Gracias por la explicación, en en curso de Testing en Java pudimos aplicarlos al establecer los niveles de seguridad de una contraseña con los valores WEAK, MEDIUM y STRONG.

Un Enum es una clase “especial” (tanto en Java como en otros lenguajes) que limitan la creación de objetos a los especificados explícitamente en la implementación de la clase. La única limitación que tienen los enumerados respecto a una clase normal es que si tiene constructor, este debe de ser privado para que no se puedan crear nuevos objetos.

Yo los ocupo para catálogos que no cambian mucho con el tiempo y son pequeños.

Las enumeraciones se podrían utilizar para distintas extensiones de archivos de audio por ejemplo “MP3”, “MP4”, etc.

Excelente concepto

Enumerations definied

public enum Days {
	
		SUNDAY("Domingo"),
		MONDAY("Lunes"),
		TUESDAY("Martes"),
		WEDNESDAY("Miercoles"),
		THURSDAY("Jueves"),
		FRIDAY("Viernes"),
		SATURDAY("Sabado");

		 private final String spanish;
	     private  Days(String spanish) {
	    	 
	    	 this.spanish = spanish;
	    	
	     }
	     
	     public String getSpanish() {
	    	return spanish; 
	    	 
	     }
}

Enumerations Undefinied


public enum Day {
	
	SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
	SATURDAY
}

Main

public class IndexEnum {
	
	public static void main(String[] args) {
		

	    System.out.println( Days.MONDAY.getSpanish());
		indicarDiasSemana(Day.FRIDAY);
		
	}
	
	private static void indicarDiasSemana(Day day) {
		
		switch (day) {
		case MONDAY: 
			System.out.println("Monday are bad");
			break;
			
		case FRIDAY:
			System.out.println("Friday are better");
			break;
			
		case SUNDAY: case SATURDAY:
			
			System.out.println("Friday are better");
			break;
		
		default:{

			System.out.println("Midweek days are so-so");
			break;
		}
	
}
}
}

Consola

System.out.println( Days.MONDAY.getSpanish());
imprime Lunes

indicarDiasSemana(Day.FRIDAY);
imprime"Friday are better"

Muchas gracias, una pregunta. En que caso se podria utilizar el enum, me podria facilitar una situacion?

Se utilizan mucho las enumeraciones.

buena explicación de enum!!!

Los enums son interesantes ya que se canaliza en una clase todas las posibilidades que se puede tener en una opcion como son las semanas, tipos de animales, figuras geometricas

Ejemplo de codigo

</*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package semana;

/**
 *
 * @author wilso
 */
public enum Semana {
    LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO
}

enum Figuras {
    TRINGULO, CIRCULO, ROMBOIDE, ESFERA
}
>

Como consecuencia el cambio solo se debe realizar en una parte de código, caso contrario si dejo todo dispersado

Gracias por los aportes!

Excelente explicación!!

Excelente!

Excelente concepto

Muy Buen tema para la utilidad de esta clase.

Muy interesante, creo que solo se debe utilizar para constantes que no superen una cierta cantidad de valores yo creo que uno 10 valores estaria bien, porque si tenemos una lista muy grande, seria muy complejo mantenerlo.

Excelente concepto. Como haría si quiero declarar constantes numericas?

package com.anncode.util;

public enum Day {


    SUNDAY("Domingo"),
    MONDAY("Lunes"),
    TUESDAY("Martes"),
    WENDNESDAY("Miecoles"),
    THURSDAY("Jueves"),
    FRIDAY("Viernes"),
    SATURDAY("Sabado");


    private  String spanish;

    private Day(String spanish) {
        this.spanish = spanish;
    }

    public String getSpanish(){
        return spanish;
    }

    public static void main(String[] args) {
        System.out.println(Day.MONDAY);
        System.out.println(Day.MONDAY.getSpanish());
    }

}

public enum Month {
	JANUARY("ENERO"),
	FEBRURY("FEBRERO"),
	MARCH("MARZO"),
	APRIL("ABRIL"),
	MAY("MAYO"),
	JUNE("JUNIO"),
	JULY("JULIO"),
	AUGUST("AGOSTO"),
	SEPTEMBER("SETIEMBRE"),
	OCTOBER("OCTUBRE"),
	NOVEMBER("NOVIEMBRE"),
	DECEMBER("DICIEMBRE");
	String spanish;
	
	public Month(String  mes){
		spanish = mes;
	}
	String getSpanish(){
		return spanish;
	}
}
<code>public class Enumeraciones {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        System.out.println( Month.DECEMBER.getSpanish());
       
    }
    public enum Month {
	JANUARY("ENERO"),
	FEBRURY("FEBRERO"),
	MARCH("MARZO"),
	APRIL("ABRIL"),
	MAY("MAYO"),
	JUNE("JUNIO"),
	JULY("JULIO"),
	AUGUST("AGOSTO"),
	SEPTEMBER("SETIEMBRE"),
	OCTOBER("OCTUBRE"),
	NOVEMBER("NOVIEMBRE"),
	DECEMBER("DICIEMBRE");
	String spanish;
	
         Month(String  mes){
		spanish = mes;
	}
	String getSpanish(){
		return spanish;
	}
    }
    
}

<code>


Muy útiles los enumerados, porque así nos permiten dar Nombre y sentido a un numero indicador de algo como los dias de la semana

Los enums siempre son estáticos 😄

los enum son pasa agrupar constantes y que quede mas fácil su uso??

GENIAL 😃

Informacion valiosa.

gracias excelente explicacion

Una forma mas de utilizar datos.