Track
/
Java
Java
/
Esercizi
/
L'auto giocattolo di Jedlik
L'auto giocattolo di Jedlik

L'auto giocattolo di Jedlik

Esercizio di apprendimento

Introduzione

Classi

Il principale costrutto orientato agli oggetti in Java è la classe, che è una combinazione di dati (campi) e comportamento (metodi). I campi e i metodi di una classe sono noti come i suoi membri.

L'accesso ai membri può essere controllato tramite i modificatori di accesso, i due più comuni dei quali sono:

  • public: il membro è accessibile da qualsiasi codice (nessuna restrizione).
  • private: il membro è accessibile solo dal codice nella stessa classe.

Puoi pensare a una classe come a un modello per creare istanze di quella classe. Per creare un'istanza di una classe (nota anche come oggetto), si usa la parola chiave new:

class Car {
}

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

I campi hanno un tipo e un nome (definito in camelCase) e possono essere definiti ovunque in una classe (per convenzione scritta in PascalCase):

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

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

Si può assegnare facoltativamente un valore iniziale a un campo. Se un campo non specifica un valore iniziale, viene impostato al valore predefinito del suo tipo. I valori dei campi di un'istanza possono essere letti e aggiornati usando la notazione con il 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;

I campi privati vengono solitamente aggiornati come effetto collaterale della chiamata a un metodo. Tali metodi di solito non restituiscono alcun valore, nel qual caso il tipo restituito dovrebbe essere void:

class CarImporter {
    private int carsImported;

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

Istruzioni

In questo esercizio giocherai con un'auto radiocomandata, che finalmente hai risparmiato abbastanza soldi per comprare.

Le auto partono con la batteria completamente carica (100%). Ogni volta che guidi l'auto con il radiocomando, percorre 20 metri e consuma l'uno per cento della batteria.

L'auto radiocomandata ha un sofisticato display a LED che mostra due informazioni:

  • La distanza totale percorsa, mostrata come: "Driven <METERS> meters".
  • La carica residua della batteria, mostrata come: "Battery at <PERCENTAGE>%".

Se la batteria è allo 0%, non puoi più guidare l'auto e il display della batteria mostrerà "Battery empty".

Hai sei attività, ognuna delle quali lavorerà con istanze di auto radiocomandata.

1. Compra un'auto radiocomandata nuova di zecca

Implementa il metodo (statico) JedliksToyCar.buy() in modo che restituisca un'istanza nuova di zecca di auto radiocomandata:

JedliksToyCar car = JedliksToyCar.buy();

2. Mostra la distanza percorsa

Implementa il metodo JedliksToyCar.distanceDisplay() in modo che restituisca la distanza così come viene mostrata sul display a LED:

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

3. Mostra la percentuale della batteria

Implementa il metodo JedliksToyCar.batteryDisplay() in modo che restituisca la percentuale della batteria così come viene mostrata sul display a LED:

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

4. Aggiorna il numero di metri percorsi quando guidi

Implementa il metodo JedliksToyCar.drive() che aggiorna il numero di metri percorsi:

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

5. Aggiorna la percentuale della batteria quando guidi

Aggiorna il metodo JedliksToyCar.drive() in modo che aggiorni la percentuale della batteria:

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

6. Impedisci di guidare quando la batteria è scarica

Aggiorna il metodo JedliksToyCar.drive() in modo che non aumenti la distanza percorsa né diminuisca la percentuale della batteria quando la batteria è scarica (allo 0%):

JedliksToyCar car = JedliksToyCar.buy();

// Drain the battery
// ...

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

car.batteryDisplay();
// => "Battery empty"
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Java Exercism

Vuoi iniziare L'auto giocattolo di Jedlik?

Iscriviti a Exercism per imparare e padroneggiare Java con 26 concetti158 esercizi e il mentoring di persone reali, tutto gratis.