EC3

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 4

1)

Implemente el constructor y el método toString() de la subclase. Se debe generar la


respuesta del ejemplo.

Por ejemplo:

Test Resultado
Bicicleta bici; Bicicleta de Pepe (2 ruedas)
bici = new Bicicleta("Pepe");
System.out.println(bici);

public class Bicicleta extends Vehiculo {


public Bicicleta(String propietario){
super(2,propietario);
}

public String toString(){


return "Bicicleta de "+this.getPropietario()+" (2 ruedas) ";
}
// Completar con los metodos indicados
// en el UML de la consigna
}

2)

Implemente la clase Camionero, tal que extienda de Persona e implemente la


interfaz ConductorPesado (notese que la interfaz ConductorPesado extiende de la
interfaz Conductor)

(la descripción de los métodos de las interfaces se encuentran en el código)

Por ejemplo:

Test Resultado
//Este test es solo para validar que compile pass
Camionero camionero = new Camionero("BJ Mackey","26.178.555");
Vehiculo ab123cd = new Vehiculo();
Carga lote7 = new Carga();
camionero.manejar (ab123cd,"Av. Circunvalacion 10234");
camionero.transportar (ab123cd, "Ruta 9 km 1/2", lote7);

/**
* Implemente la clase 'Camionero' que extiende de 'Persona' e implementa la
interfaz 'ConductorPesado'
*
* 1. Debera codificar un constructor para esta clase que reciba los parametros
"String nombre" y "String dni"
* 2. Debera codificar los metodos necesarios declarados en la interfaz
implementada. Nota: ConductorPesado
* extiende de Conductor
* 3. Un camionero maneja a la maxima velocidad permitida para un Conductor
(VEL_MAX), pero transporta a
* la velocidad maxima permitida para circular con carga (VEL_MAX_CON_CARGA)
*
* NOTA: Segun nuestro modelo, asuma los siguientes comportamientos para los metodos
declarados en las interfaces
* void manejar (Vehiculo v, String direccion)
* // a. Llevar el vehiculo a una direccion, (i.e., setea la direccion en el
vehiculo)
* // b. Setear una velocidad crucero.
*
* void transportar (Vehiculo v, String direccion, Carga c):
* // a. Llevar el vehiculo a una direccion.
* // b. Setear una velocidad crucero.
* // c. Marcar la carga como "despachada"
**/

SOLUCION:
public class Camionero extends Persona implements ConductorPesado {
public Camionero (String nombre,String dni) {
super(nombre,dni);
}

public void manejar (Vehiculo v, String direccion) {


v.setUbicacion(direccion);
v.setVelocidad(ConductorPesado.VEL_MAX);
}

public void transportar(Vehiculo v, String direccion, Carga carga) {


v.setUbicacion(direccion);
v.setVelocidad(ConductorPesado.VEL_MAX_CON_CARGA);
carga.setDespachado(true);
}
}

3)

Dada la siguiente interface y el siguiente enumerado :

public interface Edificio {


double getSuperficieEdificio();
}

Modifique la clase Oficinas para que implemente la interface Edificio.

Considere el método :

* public double getSuperficieEdificio () ---- > Retorna el area del edificio


considerando el total de todos los pisos*

Por ejemplo:

Test Resultado
Oficinas o1; PASS
o1 = new Oficinas(3,50,40);
assertTrue (o1 instanceof Edificio);
assertEquals(o1.getSuperficieEdificio(),6000.);

public class Oficinas implements Edificio {


private int numeroDePisos;
private double ancho;
private double largo;
/**
* Constructor con parametros
* @param numeroDePisos la cantidad de pisos del inmueble
* @param ancho el ancho del edificio
* @param largo el largo del edificio
*/
public Oficinas (int numeroDePisos, double ancho, double largo) {
this.numeroDePisos = numeroDePisos;
this.ancho = ancho;
this.largo = largo;

public double getSuperficieEdificio (){


double superficie=0;
superficie= numeroDePisos*(ancho*largo);
return superficie;
}
}

4)

Considere el siguiente diagrama de clases, en donde la clase ServidorDeReservas


representa un servidor que gestiona reservas en distintas aerolineas, y la clase
Agencia es un cliente que utiliza este servicio para comprar pasajes.

Implemente el método comprarPasaje de la clase Agencia, según la documentación del


método.

public class Agencia {


public static final String ERROR_NO_DISPONIBLE = "Error No Disponible.
Mensaje: ";
public static final String ERROR_INESPERADO = "Error Inesperado. Mensaje: ";
private ServidorDeReservas servidor;

public Agencia () {
servidor = new ServidorDeReservas();
}

/**
* Compra un pasaje en el vuelo especificado, en la fila y ubicacion pasados
como
* argumento, y retorna un String con el codigo de reserva retornado por el
metodo
* 'reservar' del ServidorDeReservas.
* Si se produce una Excpecion por no estar disponible el vuelo/asiento,
retorna un
* String con el texto de ERROR_NO_DISPONIBLE y el mensaje de la exception
* Si se produce un error inesperado (p.ej. Asiento invalido, vuelo invalido,
etc.)
* retorna un String con el texto de ERROR_INESPERADO y el mensaje de la
exception
*
*
* @param idVuelo
* @param fila
* @param ubicacion
* @return el codigo de reserva, o un mensaje de error
*/
public String comprarPasaje(String idVuelo, int fila, char ubicacion) {
String codigoConfirmacion;
try {
Asiento asiento = new Asiento (fila, ubicacion);
codigoConfirmacion = servidor.reservar(idVuelo, asiento);
} catch (NoDisponibleException e){
return ERROR_NO_DISPONIBLE+e.getMessage();
} catch (Exception e) {
return ERROR_INESPERADO+e.getMessage();
}
return codigoConfirmacion;
}
}

También podría gustarte