Foros del Web » Programación para mayores de 30 ;) » Java »

Clase reflexiva

Estas en el tema de Clase reflexiva en el foro de Java en Foros del Web. Hola a tod@s. Tengo que realizar el siguiente ejercicio en java. Se tiene una organización con socios (que pagan una cuota) y no socios (que ...
  #1 (permalink)  
Antiguo 11/12/2011, 06:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Clase reflexiva

Hola a tod@s.

Tengo que realizar el siguiente ejercicio en java.
Se tiene una organización con socios (que pagan una cuota) y no socios (que no pagan cuota pero tienen menos privilegios). La organización tiene un presidente y un vicepresidente, que tienen que ser socios lógicamente.
Como no tenía muy claro como modelar lo del presi y vicepresidente, al hacer el diagrama de clases se me ha ocurrido poner una asociación reflexiva 1:1 (con rol "presidente" en un extremo) en la clase Socio para ver que pasaba. Al crear el código a partir del diagrama, en la clase Socio se ha creado un atributo "presidente" de tipo Socio, lo cual me ha parecido lógico a la hora de poder crear al presidente. Entonces, con el vicepresidente ¿tendría que crear igualmente un atributo "vicepresidente" del mismo tipo?, ¿sería esa la forma de implementarlo, con dos atributos?.
En caso de que fuera ésta la forma correcta de hacerlo, me surge la duda de como inicializar esos atributos. Entiendo que en el constructor que crea un Socio a partir de sus datos (nombre, dni, etc..) no puede ser. Entonces, ¿tendría que crear un constructor que recibiera un Socio para inicializar al presidente o al vicepresidente o tendría que crear algún método en la clase para crearlos?
A ver si alguien me puede ayudar para ver si voy por buen camino.

Muchas gracias. Un saludo.
  #2 (permalink)  
Antiguo 11/12/2011, 07:44
 
Fecha de Ingreso: diciembre-2011
Mensajes: 17
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Clase reflexiva

Lo que puedes hacer es crear una clase generica que se llame socios que tenga las caracteristicas comunes a todos los socios como tu dijiste (nombre, dni, etc..). Una vez hecho eso lo que yo haria es crear una clase presidente, vicepresidente, socios que pagan, socios que no pagan.... que herede de socio, asi todos tendrian las caracteristicas comunes de la clase socios y luego podrias definir para cada clase lo que las hace especiales
  #3 (permalink)  
Antiguo 11/12/2011, 11:14
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Clase reflexiva

La clase genérica ya la había creado, llamada Persona y heredando de ésta creé las clases Socio y NoSocio, pero lo de crear las clases Presidente y Vicepresidente no me convencía.
De la forma en que me lo ha generado el NetBeans a partir del diagrama de clases me parece más lógico, ya que coincide con lo que había leído sobre las clases reflexivas, pero no tengo claro como inicializar los atributos de tipo Socio que me ha creado.
Aunque pensándolo mejor, quizá sea más fácil hacerlo como tú has dicho, creando las clases Presidente y Vicepresidente heredando de la clase Socio. Quizá así me quito de líos.

Etiquetas: clase, clases
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:21.