public void alquilarVehiculo(String matricula, String nif, int dias) { Cliente cliente = getCliente(nif); Vehiculo vehiculo = getVehiculo(matricula); // busca el cliente con el NIF dado en el array // clientes y el vehículo con la matrícula dada en el // array vehiculos, si el vehículo está disponible se // alquila con la fecha actual, que se obtiene // ejecutando los métodos diaHoy(), mesHoy() y // añoHoy(), cuya declaración no se incluye if (vehiculo.getDisponible()) { vehiculo.setDisponible(false); this.alquileres[this.totalAlquileres]= new VehiculoAlquilado(cliente, vehiculo, diaHoy(), mesHoy(), añoHoy(), dias); this.totalAlquileres++; } }
El método recibirVehiculo(String matricula) modifica la disponibilidad del vehículo para que se pueda alquilar de nuevo. Este método utiliza el método getVehiculo(String matricula) que busca el vehículo con la matrícula dada en el array vehiculos. Si lo encuentra, modifica su disponibilidad para indicar que nuevamente está disponible para alquiler.
public void recibirVehiculo(String matricula) { // busca el vehículo con la matrícula dada en el // array vehiculos y modifica su disponibilidad // para que se pueda alquilar de nuevo Vehiculo vehiculo = getVehiculo(matricula); if (vehiculo != null) vehiculo.setDisponible(true); }
Una vez definida la clase EmpresaAlquilerVehiculos es necesario definir la clase del programa principal donde se van a crear las instancias de los objetos de esta aplicación. El método main() del programa principal crea una instancia de la clase EmpresaAlquilerVehiculos, denominada easydrive con CIF “A-28-187189”, nombre “easydrive” y página web “www.easydrive.com”.
// la instancia easydrive de EmpresaAlquilerVehiculos EmpresaAlquilerVehiculos easydrive = new EmpresaAlquilerVehiculos("A-28-187189", "easy drive", "www.easydrive.com");
Al crear la instancia easydrive, el método constructor de la clase EmpresaAlquilerVehiculos inicializa los arrays clientes y vehiculos de este objeto. Una vez creada la instancia es necesario añadir clientes y vehículos al objeto easydrive. En este ejemplo se registran dos clientes y cinco vehículos de alquiler: tres turismos, un deportivo y una furgoneta.
Para registrar un nuevo cliente basta con invocar el método registrarCliente(Cliente cliente) con una instancia de la clase Cliente para añadir un nuevo cliente al array clientes del objeto easydrive.
// registro del cliente con NIF "X5618927C" easydrive.registrarCliente(new Cliente("X5618927C", "Juan","González López"));
Para registrar un nuevo vehículo basta con invocar el método registrarVehiculo(Vehiculo vehiculo) con una instancia de la clase Vehiculo para añadir un nuevo vehículo al array vehiculos del objeto easydrive.
// registro del turismo con matrícula "4060 TUR" easydrive.registrarVehiculo(new Turismo("4060 TUR", "Skoda","Fabia", "Blanco", 90.0, 2, false));
Una vez registrados los clientes y los vehículos de la empresa, se invocan los métodos imprimirClientes() e imprimirVehiculos() para mostrar la relación de clientes y el catálogo de vehículos de la empresa “easydrive”.
// imprime la relación de clientes de "easydrive" easydrive.imprimirClientes(); // imprime el catálogo de vehículos de "easydrive" easydrive.imprimirVehiculos();
public class EmpresaAlquilerVehiculos { // se omiten los atributos y el resto de métodos de la clase public void registrarCliente(Cliente cliente) { this.clientes[this.totalClientes] = cliente; this.totalClientes++; } public void registrarVehiculo(Vehiculo vehiculo) { this.vehiculos[this.totalVehiculos] = vehiculo; this.totalVehiculos++; } public void imprimirClientes() { System.out.println("NIF cliente\tNombre\n"); for (int i=0; i<this.totalClientes; i++) System.out.println(clientes[i].getAtributos()); } public void imprimirVehiculos() { System.out.println("Matricula\tModelo " + "\tImporte Disponible\n"); for (int i=0; i<this.totalVehiculos; i++) System.out.println(vehiculos[i].getAtributosInforme()); } public void alquilarVehiculo(String matricula, String nif, int dias) { Cliente cliente = getCliente(nif); Vehiculo vehiculo = getVehiculo(matricula); if (vehiculo.getDisponible()) { vehiculo.setDisponible(false); this.alquileres[this.totalAlquileres] = new VehiculoAlquilado(cliente, vehiculo, diaHoy(), mesHoy(), añoHoy(), dias); this.totalAlquileres ++; } } public void recibirVehiculo(String matricula) { Vehiculo vehiculo = getVehiculo(matricula); if (vehiculo != null) vehiculo.setDisponible(true); } }
El programa principal de la aplicación.
public class MisVehiculos { public static void main(String[] args) { // la instancia easydrive de la clase EmpresaAlquilerVehiculos EmpresaAlquilerVehiculos easydrive = new EmpresaAlquilerVehiculos("A-28-187189", "easy drive", "www.easydrive.com"); // registro de los clientes de la empresa easydrive.registrarCliente(new Cliente("X5618927C", "Juan", "González López")); easydrive.registrarCliente(new Cliente("Z7568991Y", "Luis", "Fernández Gómez")); // registro de los vehículos de la empresa easydrive.registrarVehiculo(new Turismo("4060 TUR", "Skoda", "Fabia", "Blanco", 90.0, 2, false)); easydrive.registrarVehiculo(new Deportivo("4070 DEP", "Ford", "Mustang", "Rojo", 150.0, 2000)); easydrive.registrarVehiculo(new Turismo("4080 TUR", "VW", "GTI", "Azul", 110.0, 2, false)); easydrive.registrarVehiculo(new Turismo("4090 TUR", "SEAT", "Ibiza", "Blanco", 90.0, 4, false)); easydrive.registrarVehiculo(new Furgoneta("4100 FUR", "Fiat", "Ducato", "Azul", 80.0, 1200, 8)); // imprime la relación de clientes de easydrive easydrive.imprimirClientes(); // imprime el catálogo de vehículos de easydrive easydrive.imprimirVehiculos(); } }
La salida por la consola muestra la relación de clientes y el catálogo de vehículos para alquiler:
Twittear
No hay comentarios:
Publicar un comentario