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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Meditaciones metafisicas sobre el ENUM
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Meditaciones metafisicas sobre el ENUM  (Leído 3,039 veces)
XafiloX

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Meditaciones metafisicas sobre el ENUM
« en: 20 Octubre 2010, 19:07 pm »

Hoy por primera vez he utilizado el ENUM en JAVA y la verdad, me ha asaltado una pequeña duda...El enum...¿qué es? ¿Se puede considerar una clase? Tiene una sintaxis muy extraña a la forma de declararlo que no corresponde del todo a la de una clase, sin embargo, si que puede tener constructor...


En línea

Franki

Desconectado Desconectado

Mensajes: 46


Ver Perfil WWW
Re: Meditaciones metafisicas sobre el ENUM
« Respuesta #1 en: 20 Octubre 2010, 21:12 pm »

El Enum realmente es una clase y sirve para almacenar valores relacionados y operar sobre ellos.

Antes de la existencia del enum se solía realizar una clase estática con un conjunto de constantes estáticas. Ahora simplmente creas una nueva enumeración que puedes utilizar.


En línea

XafiloX

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Meditaciones metafisicas sobre el ENUM
« Respuesta #2 en: 20 Octubre 2010, 22:52 pm »

Pero si es una clase, cómo es que puede hacer cosas como estas:
Código
  1. enum lugares2{
  2.      ORIGEN(0), CUADRANTE1(1), CUADRANTE2(2), CUADRANTE3(3), CUADRANTE4(4), SEMIEJEXPOSITIVO(5),
  3. SEMIEJEXNEGATIVO(6), SEMIEJEYPOSITIVO(7), SEMIEJEYNEGATIVO(8);
  4. }
Eso en una clase normal no se puede hacer, ¿no? Además, ¿no debería empezar su nombre por class?  :-\
En línea

Franki

Desconectado Desconectado

Mensajes: 46


Ver Perfil WWW
Re: Meditaciones metafisicas sobre el ENUM
« Respuesta #3 en: 21 Octubre 2010, 10:27 am »

Te explico, el enum tiene una sintaxis particular dentro del lenguaje Java, pero internamente está representado por la clase Enum:

http://download.oracle.com/javase/6/docs/api/java/lang/Enum.html

Un ejemplo sencillo, ímaginate que necesitas controlar que un botón esté activo o inactivo y según su estado ejecutes un bloque de instrucción o otro.

Actualmente con el enum harías algo así:

enum Estado {Activo, Inactivo};

Y ya dentro de tu clase, en el método que comparara el estado podrías hacer algo así:

if(boton.getEstado() == Estado.Activo )
//blabla

Antes de la existencia del Enum tenías que crearte una clase aposta con ese conjunto de constantes estáticas:

class Estado{
static final int Activo == 1;
static final int Inactivo == 0;
}

Este es un ejemplo muy chorra, pero las enumeraciones pueden ser muy potentes, pues definirles un constructor y métodos internos.

En línea

XafiloX

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Meditaciones metafisicas sobre el ENUM
« Respuesta #4 en: 21 Octubre 2010, 15:48 pm »

OK, muchisimas gracias por la explicacion  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre matrices y los enum
Programación C/C++
jorgefer92 1 2,907 Último mensaje 26 Enero 2011, 14:06 pm
por eustakio12345654321
Acerca de los tipos Enum
Programación Visual Basic
x64core 5 4,073 Último mensaje 20 Septiembre 2011, 18:26 pm
por x64core
Enum y operadores (noob)
Programación C/C++
_niu 2 2,245 Último mensaje 20 Diciembre 2011, 19:54 pm
por _niu
Enum
Programación C/C++
angeljonh 3 2,516 Último mensaje 21 Agosto 2017, 20:10 pm
por angeljonh
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines