Clase con Enums

Iniciado por Baal_30, 9 Abril 2015, 22:50 PM

0 Miembros y 1 Visitante están viendo este tema.

Baal_30

Buenas, tengo dos clases de objeto creadas, y para cada una necesito un atributo que sea Enum (cada clase una enum diferente). He creado otra clase (que es como me lo piden) para crear las dos Enum, pero ahora no tengo ni idea de que forma ponerlo en la clase de los objetos como atributo. Por ejemplo, si la clase donde están las Enum, se llama Enumeraciones, en la clase del objeto 1, debo poner : private Enumeraciones (nombreDelAtributo)¿?

Un saludo.
«La suerte es el cuidado de los detalles». -Winston Churchill

Usuario Invitado

Hola nuevamente Baal,

  • Un Enum es un tipo de dato que nos permite crear objetos constantes (que no cambian) que están predefinidos en él. Aunque es dada esta limitación, igualmente podemos cambiarle valores en tiempo de ejecución.

    Código (java) [Seleccionar]
    public enum Days {
       MONDAY("Nada"),
       TUESDAY("Pasear al perro"),
       WEDNESDAY("Organizar informe"),
       THURSDAY("Nada"),
       FRIDAY("Presentar avance proyecto X"),
       SATURDAY("Reunirse con el equipo para el próximo sprint"),
       SUNDAY("Ir a la playa");

       private String task;

       public String getTask() {
           return task;
       }
       public void setTask(String task) {
           this.task = task;
       }
       private DaysTasks(String task) {
           this.task = task;
       }
    }


    Cabe aclarar que el constructor de un Enum debe ser private o package (modificador de acceso por defecto).

    Para usar el enum DaysTasks en una clase, basta declarar una objeto de su tipo:

    Código (java) [Seleccionar]
    private DaysTasks dayTask;

    Y podemos inicializarla a través de algún constructor:

    Código (java) [Seleccionar]
    public SomethingClass(DaysTasks dayTask) {
       this.dayTask = dayTask;
    }


    Y le pasaríamos una constante del enum así:

    Código (java) [Seleccionar]
    SomethingClass somethingClass = new SomethingClass(DaysTasks.MONDAY);

    Cabe aclarar también, como dijimos que le podemos cambiar valores a las variables a través de su setter o cualquier método:

    Código (java) [Seleccionar]
    taskDay.setTask("Nueva tarea aquí");

    Y podemos obtener la tarea a través del getter en éste caso:

    Código (java) [Seleccionar]
    String task = taskDay.getTask();
    System.out.println("La tarea del día lunes es: "+task);



    Espero haya quedado claro, un saludo.

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

Baal_30

Gus, eres una mina de oro :P

Una cosita más, el enum lo creas en otra clase aparte o ella misma es una clase, y en vez de poner public class nombre, pones : public enum nombre ¿?
«La suerte es el cuidado de los detalles». -Winston Churchill

Usuario Invitado

Sí, es una clase especial por lo que puede ir como interna o en un fichero aparte.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

Baal_30

#4
Aaaah, ahora lo entiendo todo :O jaja

Muchas gracias Gus, como siempre genial tu ayuda :)

Modifico: Una cosita más, si tengo que hacer dos enum diferentes, hago dos clases separadas¿?
«La suerte es el cuidado de los detalles». -Winston Churchill

Usuario Invitado

Pues es obvio. Si los dos enums van a estar como propiedades en una clase, pues deberían estar en otro fichero.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

Baal_30

Okey, gracias por todo :)
«La suerte es el cuidado de los detalles». -Winston Churchill