Tracks
/
Java
Java
/
Ejercicios
/
El auto de juguete de Jedlik
El auto de juguete de Jedlik

El auto de juguete de Jedlik

Ejercicio de aprendizaje

Introducción

Clases

La construcción orientada a objetos principal en Java es la clase, que combina datos (campos) y comportamiento (métodos). Los campos y los métodos de una clase se conocen como sus miembros.

El acceso a los miembros se puede controlar mediante modificadores de acceso, de los cuales los dos más comunes son:

  • public: se puede acceder al miembro desde cualquier código (sin restricciones).
  • private: solo se puede acceder al miembro desde código de la misma clase.

Puedes pensar en una clase como una plantilla para crear instancias de esa clase. Para crear una instancia de una clase (también conocida como objeto), se usa la palabra clave new:

class Car {
}

// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();

Los campos tienen un tipo y un nombre (definidos en camelCase) y se pueden definir en cualquier parte de una clase (por convención, en PascalCase):

class Car {
    // Accessible by anyone
    public int weight;

    // Only accessible by code in this class
    private String color;
}

De manera opcional, puedes asignar un valor inicial a un campo. Si un campo no especifica un valor inicial, se le asignará el valor predeterminado de su tipo. Se puede acceder a los valores de los campos de una instancia y actualizarlos usando la notación de punto.

class Car {
    // Will be set to specified value
    public int weight = 2500;

    // Will be set to default value (0)
    public int year;
}

Car newCar = new Car();
newCar.weight; // => 2500
newCar.year;   // => 0

// Update value of the field
newCar.year = 2018;

Por lo general, los campos privados se actualizan como efecto secundario de llamar a un método. Estos métodos normalmente no devuelven ningún valor, en cuyo caso el tipo de retorno debe ser void:

class CarImporter {
    private int carsImported;

    public void importCars(int numberOfCars)
    {
        // Update private field from public method
        carsImported = carsImported + numberOfCars;
    }
}

Instrucciones

En este ejercicio vas a jugar con un carro a control remoto, para el que por fin ahorraste suficiente dinero y pudiste comprarlo.

Los carros comienzan con la batería llena (100%). Cada vez que conduces el carro usando el control remoto, recorre 20 metros y consume uno por ciento de la batería.

El carro a control remoto tiene una vistosa pantalla LED que muestra dos datos:

  • La distancia total que ha recorrido, mostrada como: "Driven <METERS> meters".
  • La carga restante de la batería, mostrada como: "Battery at <PERCENTAGE>%".

Si la batería está al 0%, ya no puedes conducir el carro y la pantalla de la batería mostrará "Battery empty".

Tienes seis tareas, y cada una trabajará con instancias del carro a control remoto.

1. Compra un carro a control remoto nuevo

Implementa el método (estático) JedliksToyCar.buy() para que devuelva una instancia nueva del carro a control remoto:

JedliksToyCar car = JedliksToyCar.buy();

2. Muestra la distancia recorrida

Implementa el método JedliksToyCar.distanceDisplay() para que devuelva la distancia tal como se muestra en la pantalla LED:

JedliksToyCar car = JedliksToyCar.buy();
car.distanceDisplay();
// => "Driven 0 meters"

3. Muestra el porcentaje de batería

Implementa el método JedliksToyCar.batteryDisplay() para que devuelva el porcentaje de batería tal como se muestra en la pantalla LED:

JedliksToyCar car = JedliksToyCar.buy();
car.batteryDisplay();
// => "Battery at 100%"

4. Actualiza el número de metros recorridos al conducir

Implementa el método JedliksToyCar.drive() que actualiza el número de metros recorridos:

JedliksToyCar car = JedliksToyCar.buy();
car.drive();
car.drive();
car.distanceDisplay();
// => "Driven 40 meters"

5. Actualiza el porcentaje de batería al conducir

Actualiza el método JedliksToyCar.drive() para que actualice el porcentaje de batería:

JedliksToyCar car = JedliksToyCar.buy();
car.drive();
car.drive();
car.batteryDisplay();
// => "Battery at 98%"

6. Evita conducir cuando la batería esté agotada

Actualiza el método JedliksToyCar.drive() para que no aumente la distancia recorrida ni reduzca el porcentaje de batería cuando la batería esté agotada (al 0%):

JedliksToyCar car = JedliksToyCar.buy();

// Drain the battery
// ...

car.distanceDisplay();
// => "Driven 2000 meters"

car.batteryDisplay();
// => "Battery empty"
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Java Exercism

¿Todo listo para empezar El auto de juguete de Jedlik?

Regístrate en Exercism para aprender y dominar Java con 26 conceptos158 ejercicios y mentoría humana real, todo gratis.