elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Clase con Enums
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Clase con Enums  (Leído 3,414 veces)
Baal_30

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Clase con Enums
« en: 9 Abril 2015, 22:50 pm »

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.


En línea

«La suerte es el cuidado de los detalles». -Winston Churchill
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Clase con Enums
« Respuesta #1 en: 9 Abril 2015, 23:19 pm »

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
  1. public enum Days {
  2.    MONDAY("Nada"),
  3.    TUESDAY("Pasear al perro"),
  4.    WEDNESDAY("Organizar informe"),
  5.    THURSDAY("Nada"),
  6.    FRIDAY("Presentar avance proyecto X"),
  7.    SATURDAY("Reunirse con el equipo para el próximo sprint"),
  8.    SUNDAY("Ir a la playa");
  9.  
  10.    private String task;
  11.  
  12.    public String getTask() {
  13.        return task;
  14.    }
  15.    public void setTask(String task) {
  16.        this.task = task;
  17.    }
  18.    private DaysTasks(String task) {
  19.        this.task = task;
  20.    }
  21. }

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
  1. private DaysTasks dayTask;

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

Código
  1. public SomethingClass(DaysTasks dayTask) {
  2.    this.dayTask = dayTask;
  3. }

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

Código
  1. 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
  1. taskDay.setTask("Nueva tarea aquí");

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

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


Espero haya quedado claro, un saludo.



En línea

"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

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: Clase con Enums
« Respuesta #2 en: 10 Abril 2015, 20:10 pm »

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 ¿?
En línea

«La suerte es el cuidado de los detalles». -Winston Churchill
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Clase con Enums
« Respuesta #3 en: 10 Abril 2015, 21:03 pm »

Sí, es una clase especial por lo que puede ir como interna o en un fichero aparte.
En línea

"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

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: Clase con Enums
« Respuesta #4 en: 11 Abril 2015, 19:46 pm »

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¿?
« Última modificación: 11 Abril 2015, 19:49 pm por Baal_30 » En línea

«La suerte es el cuidado de los detalles». -Winston Churchill
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Clase con Enums
« Respuesta #5 en: 11 Abril 2015, 20:20 pm »

Pues es obvio. Si los dos enums van a estar como propiedades en una clase, pues deberían estar en otro fichero.
En línea

"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

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: Clase con Enums
« Respuesta #6 en: 12 Abril 2015, 00:18 am »

Okey, gracias por todo :)
En línea

«La suerte es el cuidado de los detalles». -Winston Churchill
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error en org.apache.commons.lang.enums al programar en Android
Java
P4nd3m0n1um 0 1,275 Último mensaje 26 Noviembre 2012, 21:45 pm
por P4nd3m0n1um
[C#] [VB.NET] Enums con valores duplicados
.NET (C#, VB.NET, ASP)
Eleкtro 2 2,646 Último mensaje 10 Noviembre 2013, 18:45 pm
por Eleкtro
Como sobre-escribir un método de una clase base en una clase heredada?
Programación C/C++
julian21931500 5 3,501 Último mensaje 25 Febrero 2015, 23:49 pm
por ivancea96
Enums inside of Structs,compile error
Programación C/C++
aurquiel 2 1,409 Último mensaje 26 Julio 2018, 14:39 pm
por aurquiel
enums heredados ?
Programación C/C++
digimikeh 1 1,646 Último mensaje 16 Octubre 2019, 21:52 pm
por ThunderCls
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines