Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

127
Vistas
¿Cómo almacenar solo varios pasajeros dentro de la clase de cabina?

Tengo tres clases en mi programa. Ship.java , Cabin.java y Passenger.java . De acuerdo con el programa, una sola cabina debe albergar hasta 3 pasajeros únicamente. Pero estoy atascado en cómo hacer esto. He creado una serie de objetos de cabina en mi clase Ship.java . Solo puedo agregar un pasajero a una cabina con el método addCustomer mencionado a continuación

 Cabin[] cruiseShip = new Cabin[12]; for (int i = 0; i < cruiseShip.length; i++) { cruiseShip[i] = new Cabin(); } public static void addCustomer(Cabin[] cruiseShip, String firstName, String surName, int expenses, int cabinNumber){ if (cruiseShip[cabinNumber].getCabinName().equals("empty")){ cruiseShip[cabinNumber].setFirstName(firstName); cruiseShip[cabinNumber].setSurName(surName); cruiseShip[cabinNumber].setExpenses(expenses); cruiseShip[cabinNumber].setCabinName("not empty"); System.out.println("Cabin number " + cruiseShip[cabinNumber].getCabinNumber() + " is occupied by " + cruiseShip[cabinNumber].getFirstName() + " " + cruiseShip[cabinNumber].getSurName() ); } }

Así es como se ve Cabin.java :

 public class Cabin extends Passenger { int cabinNumber; String cabinName; public String getCabinName() { return cabinName; } public void setCabinName(String cabinName) { this.cabinName = cabinName; } public int getCabinNumber() { return cabinNumber; } public void setCabinNumber(int cabinNumber) { this.cabinNumber = cabinNumber; } }

Así es como se ve Passenger.java :

 public class Passenger { String firstName; String surName; int expenses; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getSurName() { return surName; } public void setSurName(String surName) { this.surName = surName; } public int getExpenses() { return expenses; } public void setExpenses(int expenses) { this.expenses = expenses; } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La Cabin debe contener una estructura de datos que contenga a los pasajeros (asociación 1-n, de 1_cabina-N_pasajeros). También puede restringir el número. de pasajeros con respecto al tipo de cabina (hasta 2-3-n pasajeros) y también verifique no agregar n-veces el mismo pasajero en la misma cabina por un tiempo específico. La misma lógica con el Ship que tiene Cabins .

 class Cabin { ... etc ... as u did List<Passenger> listP = new ArrayList<Passenger>(); } listP.add(new Passenger(...)); class Ship { ... List<Cabin> listC = new ArrayList<Cabin>(); } listC.add(new Cabin(...)); //get a specific cabin from the ship and add a new Passenger //note maybe it's better to do your custom methods for add,get_Ship, Cabin (based on the requiremts). //Standard List Methods usually do not fit exactly custom requirements, so need to be enhanced ship.getlistC().get(i_specificCabin).listP.add(new Passenger(...));

Tenga cuidado de no mezclar la semántica, piense cómo funcionan las cosas en el mundo real (ver @Jim Garrison).

Nota: Tal vez un Map<String/Integer,CustomObject> pueda encajar bien para facilitar el acceso según la clave (id).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda