Nota: En el siguiente ejercicio la complejidad aumentará. Se requiere conocer el funcionamiento de los operadores lógicos y condicionales (if/else, switch).
Problema
Defina la clase Carro con las siguientes variables:
- puertas (valor por defecto 3, privada ).
- velocidad (valor por defecto 0, privada).
- puertas-Cerradas (valor por defecto: falso, privada).
- El carro solo acelera si tiene las puertas cerradas.
- Cada vez que el carro acelera, su velocidad aumenta en 10 Km. El valor máximo de la velocidad es 100 Km.
- El carro solo frena si la velocidad es mayor que cero y las puertas están cerradas. La velocidad se reducirá en 10 km.
- Si la velocidad es 100 Km y se ejecuta el método acelerar, saldrá un mensaje en consola diciendo: No se puede acelerar mas.
- Si la velocidad es 0 km y se ejecuta el método frenar, saldrá un mensaje en consola diciendo: El carro está frenado.
- Es posible crear un carro con una velocidad mayor que cero y con las puertas abiertas. No obstante, para que los métodos: frenar y acelerar funcionen correctamente, es necesario cerrar las puertas previamente.
Solución
La funcionalidad debe ser igual, pese a existir diferentes formas de solucionar el problema.
Clase Carro
package certification1;
public class Carro {
private int num_puertas = 3;
private int velocidad = 0;
private boolean puertas_cerradas = false;
public Carro(){
this.num_puertas = 3;
this.velocidad = 0;
this.puertas_cerradas = false;
}
public Carro(int num_puertas, int velocidad, boolean puertas_cerradas){
assert(num_puertas > 0);
assert(velocidad >= 0);
this.num_puertas = num_puertas;
this.velocidad = velocidad;
this.puertas_cerradas = puertas_cerradas;
}
public void acelerar(){
if(puertas_cerradas == true){
if(velocidad < 100){
velocidad += 10;
System.out.println("Velocidad actual (despues de acelerar): " + velocidad);
}else{
System.out.println("No se puede acelerar mas.");
}
}else{
System.out.println("Puertas abiertas no se puede acelerar.");
}
}
public void frenar(){
if(velocidad == 0){
System.out.println("El carro esta frenado");
}else{
if(puertas_cerradas == true){
velocidad -= 10;
System.out.println("Velocidad actual (despues de frenar): " + velocidad);
}
}
}
public void abrir_puertas(){
if(puertas_cerradas == true){
puertas_cerradas = false;
}
}
public void cerrar_puertas(){
if(puertas_cerradas == false){
puertas_cerradas = true;
}
}
}
Clase main
package certification1;
public class Certification1 {
public static void main(String[] args) {
Carro c = new Carro();
c.cerrar_puertas();
c.acelerar();
c.frenar();
}
}
Para que el programa funcione correctamente en NetBeans es necesario habilitar assertions en la maquina virtual (VM) . Para ello siga los siguiente pasos:
- En NetBeans,haga click en la pestaña: Run .
- Click en: Set Project Configuration.
- Click en: Customize.
- Click en: New , digite el nombre: assertion (o cualquier otro) y haga click en Ok .
- En la sección VM Option , digite los siguiente: -enableassertions .
- Finalmente, seleccione la configuración assertion que acabamos de crear para compilar.
No comments:
Post a Comment