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

[SOLUCIONADO] arrayList en constructor

Estas en el tema de arrayList en constructor en el foro de Java en Foros del Web. Buenas tardes. tengo la siguiente duda. Tengo una clase llamada reserva con extends de la clase Habitacion. En la clase reserva tengo los siguientes atributos: ...
  #1 (permalink)  
Antiguo 13/10/2014, 10:05
 
Fecha de Ingreso: octubre-2012
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 0
arrayList en constructor

Buenas tardes.
tengo la siguiente duda.
Tengo una clase llamada reserva con extends de la clase Habitacion.

En la clase reserva tengo los siguientes atributos:

Código Java:
Ver original
  1. public class Reserva extends Habitacion {
  2. private String fechaEntrada;
  3. private String fechaSalida;
  4. private int numeroDias;
  5. private int numeroPersonas;
  6. arrayList<Cliente> listaClientes;
  7.  
  8.  
  9. //Constructores:
  10.  
  11. public Reserva(String fechaEntrada, String fechaSalida, int numeroDias,
  12.     int numeroPersonas, String numeroHabitacion, TipoHabitacion tipoHabitacion,
  13.     boolean estadoDiponibilidad, String fotoHabitacion){
  14.        
  15.         super(numeroHabitacion, tipoHabitacion, estadoDiponibilidad, fotoHabitacion);  
  16.         this.fechaEntrada = fechaEntrada;
  17.         this.fechaSalida = fechaSalida;
  18.         this.numeroDias = numeroDias;
  19.         this.numeroPersonas = numeroPersonas;
  20.     }

La duda que tengo es como pongo en el constructor el atributo "arrayList<Cliente> listaClientes". o si si es necesario ponerlo o si lo pongo en otro constructor o como lo pongo?.

y si al "arrayList<Cliente> listaClientes" se le puede hacer get y set.


es lo que necesito para esta parte en el programa poder hacer ingresar datos del cliente, de la reserva y la habitación.
yo ya la clase clientes la tengo echa.
entonces la duda que tengo también es como llamar a ese arrayList y utilizarlo para agregar los datos.
lo que no entiendo muy bien en esta caso es si el ArrayList<Cliente> listaClientes sirve para que me liste los clientes que están en la clase clientes o para que otra cosa podría servir?

por favor necesito que me ayuden a aclarar estas dudas que tengo y me puedan ayudar con esto.
Gracias
  #2 (permalink)  
Antiguo 13/10/2014, 10:40
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: arrayList en constructor

Cita:
La duda que tengo es como pongo en el constructor el atributo "arrayList<Cliente> listaClientes". o si si es necesario ponerlo o si lo pongo en otro constructor o como lo pongo?.
Es un poco raro como mezclas reserva y habitación.


Cita:
y si al "arrayList<Cliente> listaClientes" se le puede hacer get y set.
Es un objeto ¿por qué no se iba a poder?

Cita:
entonces la duda que tengo también es como llamar a ese arrayList y utilizarlo para agregar los datos.
Lo recuperas con el get, se comporta como cualquier List.

Cita:
lo que no entiendo muy bien en esta caso es si el ArrayList<Cliente> listaClientes sirve para que me liste los clientes que están en la clase clientes o para que otra cosa podría servir?
Si tú tienes un listado de clientes dentro de un objeto, lo lógico es que sean los clientes de esa reserva/habitación, no todos los clientes.

¿Para qué podría servir? Eso es cosa tuya, tú sabrás las necesidades de tu aplicación. Las clases no se crean y después se busca para qué sirven, se ven las necesidades y se crean en función de ellas.

Edito: No entiendo por qué reserva hereda de habitación, una reserva no es una habitación.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Última edición por Xerelo; 13/10/2014 a las 10:45
  #3 (permalink)  
Antiguo 13/10/2014, 10:58
 
Fecha de Ingreso: octubre-2012
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: arrayList en constructor

Muchas gracias Xerelo.
respecto a lo de la herencia de reserva y habitacion yo lo entiendo de este modo:

en reserva tengo lo siguientes atributos:
fechaEntrada;
fechaSalida;
numeroDias;
numeroPersonas;
arrayList<Cliente> listaClientes;

en la clase habitacion tengo lo siguiente:
numeroHabitacion;
tipoHabitacion;
EstadoDisponibilidad;
fotoHabitacion.

entonces para yo realizar una reserva a parte de los datos normales de la reserva necesito saber el numero de la habitacion, el tipo de habitacion y el estado al que se le va hacer la reserva para el cliente.

A si no funcionan las herencias?
porque yo e consultado mucho y mas o menos me di esa idea.
y si no. me podrías explicar?
  #4 (permalink)  
Antiguo 13/10/2014, 13:09
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: arrayList en constructor

Buenas,

Reserva y Habitacion son un ejemplo claro de composicion.
Deberías mantener la clase Habitacion tal y como está y añadirla dentro de Reserva.

fechaEntrada;
fechaSalida;
numeroDias;
numeroPersonas;
ArrayList<Cliente> listaClientes;
<b>Habitacion habitacion</b>


Para saber las relaciones que hay que aplicar y no tienes experiencia, hay una regla que funciona bien en el 99% de los casos.

Herencia: "es un". Por ejemplo un Coche "es un" Vehiculo al igual que un Camion. Por tanto, tanto Coche como Camion deben extender de Vehiculo.

class Coche extends Vehiculo

¿Una Reserva es una Habitación? No creo...


Asociacion: "usa". Cuando un tipo utiliza otro para su finalidad. Por ejemplo, un Cliente de una tienda usa una TarjetaBancaria.

class Cliente
int id
String nombre
String apellidosO
TarjetaBancaria tarjetaBancaria


Composicion "tiene un". Por ejemplo, un Coche "tiene" 4 Rueda. Un Ordenador "tiene" Teclado. O, en tu caso
una reserva "tiene una" ListadeClientes y ¿una? Habitacion


Como ya habrás pensado, la asociacion y la composición se parecen bastante. ¿La Reserva "tiene" o "usa" una Habitacion? La diferencia está en como lo entiendas funcionalmente. ¿Puede existir una Reserva sin Habitacion? En caso afirmativo es una asociación. En caso contrario, se trata de composición.

Por otro lado, te pregunto: ¿no puede ser que una misma reserva contenga varias habitaciones? (por ejemplo una reserva de grupo)


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 13/10/2014, 22:49
 
Fecha de Ingreso: octubre-2012
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: arrayList en constructor

Gracias Profesor_Falken. me sirvió mucho.

Etiquetas: arraylist, constructor
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 00:05.