Tracks
/
Java
Java
/
Übungen
/
Jedliks Spielzeugauto
Jedliks Spielzeugauto

Jedliks Spielzeugauto

Lernübung

Einführung

Klassen

Das primäre objektorientierte Konstrukt in Java ist die Klasse, eine Kombination aus Daten (Felder) und Verhalten (Methoden). Die Felder und Methoden einer Klasse werden als ihre Mitglieder bezeichnet.

Der Zugriff auf Mitglieder kann über Zugriffsmodifikatoren gesteuert werden. Die beiden gebräuchlichsten sind:

  • public: Auf das Mitglied kann jeder Code zugreifen (keine Einschränkungen).
  • private: Auf das Mitglied kann nur Code in derselben Klasse zugreifen.

Du kannst dir eine Klasse als Vorlage für das Erstellen von Instanzen dieser Klasse vorstellen. Um eine Instanz einer Klasse zu erstellen (auch als Objekt bekannt), wird das Schlüsselwort new verwendet:

class Car {
}

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

Felder haben einen Typ und einen Namen (in camelCase geschrieben) und können überall in einer Klasse definiert werden (Klassen schreibt man konventionsgemäß in PascalCase):

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

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

Du kannst einem Feld optional einen Anfangswert zuweisen. Wenn ein Feld keinen Anfangswert angibt, wird es auf den Standardwert seines Typs gesetzt. Die Feldwerte einer Instanz lassen sich mit der Punktnotation abrufen und aktualisieren.

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;

Private Felder werden normalerweise als Seiteneffekt beim Aufruf einer Methode aktualisiert. Solche Methoden geben üblicherweise keinen Wert zurück. In diesem Fall sollte der Rückgabetyp void sein:

class CarImporter {
    private int carsImported;

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

Anleitung

In dieser Übung spielst du mit einem ferngesteuerten Auto herum, für das du endlich genug Geld gespart hast.

Die Autos starten mit vollen (100 %) Akkus. Jedes Mal, wenn du das Auto mit der Fernbedienung fährst, legt es 20 Meter zurück und verbraucht ein Prozent des Akkus.

Das ferngesteuerte Auto hat ein schickes LED-Display, das zwei Informationen anzeigt:

  • Die insgesamt gefahrene Strecke, angezeigt als: "Driven <METERS> meters".
  • Die verbleibende Akkuladung, angezeigt als: "Battery at <PERCENTAGE>%".

Wenn der Akku bei 0 % ist, kannst du das Auto nicht mehr fahren, und die Akkuanzeige zeigt "Battery empty" an.

Du hast sechs Aufgaben, die jeweils mit Instanzen des ferngesteuerten Autos arbeiten.

1. Kaufe ein brandneues ferngesteuertes Auto

Implementiere die (statische) Methode JedliksToyCar.buy(), die eine brandneue Instanz des ferngesteuerten Autos zurückgibt:

JedliksToyCar car = JedliksToyCar.buy();

2. Zeige die gefahrene Strecke an

Implementiere die Methode JedliksToyCar.distanceDisplay(), die die Strecke so zurückgibt, wie sie auf dem LED-Display angezeigt wird:

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

3. Zeige den Akkustand in Prozent an

Implementiere die Methode JedliksToyCar.batteryDisplay(), die den Akkustand so zurückgibt, wie er auf dem LED-Display angezeigt wird:

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

4. Aktualisiere die gefahrenen Meter beim Fahren

Implementiere die Methode JedliksToyCar.drive(), die die Anzahl der gefahrenen Meter aktualisiert:

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

5. Aktualisiere den Akkustand beim Fahren

Aktualisiere die Methode JedliksToyCar.drive() so, dass sie auch den Akkustand aktualisiert:

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

6. Verhindere das Fahren, wenn der Akku leer ist

Passe die Methode JedliksToyCar.drive() so an, dass sie die gefahrene Strecke nicht erhöht und den Akkustand nicht verringert, wenn der Akku leer ist (bei 0 %):

JedliksToyCar car = JedliksToyCar.buy();

// Drain the battery
// ...

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

car.batteryDisplay();
// => "Battery empty"
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Java Exercism

Bereit, mit Jedliks Spielzeugauto zu starten?

Melde dich bei Exercism an, um Java mit 26 Konzepte158 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.