codigo del programa alquiler de vehiculo
CODIGO DE LA CLASE VEHICULO (PADRE)

public class Vehiculo {

private String matricula;
private boolean alquilar;
//  Declaración de atributos string (cadena), boolean (true, false).

public Vehiculo (String matricula,boolean alquilar) {
this.matricula = matricula;
this.alquilar = alquilar;}
// Un constructor que recibe los atributos antes mencionados.

public void Alquilar() {
this.alquilar = true;}

public void Devolver() {
this.alquilar=false;}
// En esta parte de código son dos métodos llamados alquilar y devolver.
//Variable alquilar igual a Verdadero.
//Variable alquilar igual a Falso.

public void DatoTransport(){
System.out.println("matricula : " + this.matricula);
if(alquilar)
System.out.println("El vehiculo esta alquilado");
else
System.out.println("El vehiculo no esta alquilado");}}
//Un método  DatoTransport () para mostrar información de vehículo haciendo uso de la variable boolean.



CODIGO DE LA CLASE TURISMO (HIJA)


public class Turismo extends Vehiculo {

private double preciokm;
private int kmalquiler;
private int kmdevuelto;
private static int NumTurismo;
private static int NumTurAlquilado;
// Declarar Atributos de la clase turismo los cuales son doublé (decimal), int (entero), static int (enteras estáticas).

public Turismo (String matricula,boolean alquilar,double preciokm){
super (matricula,alquilar);
this.preciokm = preciokm;
NumTurismo++;}
//Constructor para los atributos de esta clase y los heredados de la clase padre vehículo, además incrementamos numero de turismo.

public void Alquilar(int k) {
super.Alquilar();
this.kmalquiler=k;
NumTurAlquilado++;
System.out.println("Alquiler realizado");}
//Método alquilar este no se redefine por que este recibe atributos y el de la clase padre no recibía, además incrementamos numero de turismos alquilados.

public void Devolver(int kd) {
double a,b;
super.Devolver();
this.kmdevuelto=kd;
a=this.kmdevuelto-this.kmalquiler;
b=a*this.preciokm;
NumTurAlquilado--;
System.out.println("Costo de alquiler"+b);}
//Método devolver este no se redefine por que este recibe atributos y el de la clase padre no recibía, además usamos variables de tipo doublé para no perder precisión, realizamos operaciones matemáticas como resta, multiplicación y disminuimos numero de turismos alquilados, el resultado total de la operación se va a almacenar en la variable b.

@Override
public void DatoTransport() {
System.out.println("Turismo");
super.DatoTransport();
System.out.println("preciokm: " + this.preciokm);
System.out.println("# turismos " + NumTurismo);
System.out.println("Turismos alquilados " + NumTurAlquilado);}   }
 //Este método si esta sobrescrito  (heredado) de la clase padre (vehículo) porque no recibe argumentos igual al de la clase padre, además mostramos la información de turismo.


CODIGO DE LA CLASE CAMION (HIJA)


public class Camion extends Vehiculo{

private double PrecioDia;
private int diaAlquiler;
private int diaDevolucion;
private static int NumCamiones;
private static int NumCamAlquilado;
// Declarar Atributos de la clase camión los cuales son doublé (decimal), int (entero), static int (enteras estáticas).

public Camion(String matricula, boolean alquilar,double PrecioDia) {
super(matricula, alquilar);
this.PrecioDia =  PrecioDia;
NumCamiones ++;}
//Constructor para los atributos de esta clase y los heredados de la clase padre vehiculo, además incrementamos número de camiones.

public void Alquilar(int ka) {
super.Alquilar();
this.diaAlquiler = ka;
System.out.println("tipo de alquiler " );
NumCamAlquilado -- ; }
//Método alquilar este no se redefine por que este recibe atributos y el de la clase padre no recibía, además incrementamos numero de camiones alquilados.


public void Devolver(int dd) {
double x,z;
super.Devolver();
this.diaDevolucion = dd;
x= this.diaDevolucion - this.diaAlquiler;
z= x*this.PrecioDia;
System.out.println("precio de alquiler: " + z);}
//Método devolver este no se redefine por que este recibe atributos y el de la clase padre no recibía, además usamos variables de tipo doublé para no perder precisión, realizamos operaciones matemáticas como resta, multiplicación , el resultado total de la operación se va a almacenar en la variable z.

@Override
public void DatoTransport() {
super.DatoTransport();
System.out.println("tipo camion: " + PrecioDia );
System.out.println(" # camiones " + NumCamiones );
System.out.println(" camiones alquilado " + NumCamAlquilado );}}
//Este método si esta sobrescrito  (heredado) de la clase padre (vehículo) porque no recibe argumentos igual al de la clase padre, además mostramos la información de camión.


CODIGO DE LA CLASE PRINCIPAL (PROCESOS)

public class Principal {

public static void main(String[] args) {
       
Camion  avis0 = new Camion("SS-4386-AN", false, 100);
Turismo avis1 = new Turismo("BI-6666-ZZ", false, 0.3);
Turismo avis2 = new Turismo("HU-1976-A", false, 0.4);
Camion  avis3 = new Camion("VI-1234-HL", false, 120);
// Creamos cuatro objetos dos objetos para camión y dos para turismo.

System.out.println("\nSE ALQUILAN DOS VEHICULOS:");
avis0.Alquilar(23000); // alquilar turismo con 23000 km
avis1.Alquilar(5); // alquilar camion el dia 5
System.out.println("\nSE IMPRIMEN LOS DATOS " +"DE LOS VEHICULOS:");
// Imprimimos por pantalla  la información de vehículos.
avis0.DatoTransport();
avis1.DatoTransport();
avis2.DatoTransport();
avis3.DatoTransport();      
       
System.out.println("\nSE DEVUELVEN DOS VEHICULOS:");
avis2.Devolver(25000); // devolver turismo con 25000 km
avis3.Devolver(9); // devolver camion el dia 9
} } }
// este bloque de código aparecerá en pantalla la información de los vehículos que se devuelven recordemos que en la clase turismo será por kilometraje y en la de camión por dia

Anexos



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentarios:

Publicar un comentario