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 28

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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 ?

Un Enum es una clase 鈥渆special鈥 (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.

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.

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 鈥淢P3鈥, 鈥淢P4鈥, etc.

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.