Kurzusok
/
Java
Java
/
Feladatok
/
Jedlik játékkocsija
Jedlik játékkocsija

Jedlik játékkocsija

Tanulófeladat

Bevezetés

Osztályok

A Java elsődleges objektumorientált építőeleme az osztály, amely adatok (mezők) és viselkedés (metódusok) kombinációja. Egy osztály mezőit és metódusait együtt tagoknak nevezzük.

A tagokhoz való hozzáférést hozzáférés-módosítókkal szabályozhatod; a két leggyakoribb:

  • public: a tagot bármely kód elérheti (nincs megkötés).
  • private: a tagot csak az ugyanabban az osztályban lévő kód érheti el.

Az osztályt tekintheted egy sablonnak, amellyel az adott osztály példányait létrehozod. Egy osztály példányának (más néven objektumnak) a létrehozásához a new kulcsszót használjuk:

class Car {
}

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

A mezőknek típusuk és nevük van (camelCase írásmóddal definiálva), és az osztályon belül bárhol definiálhatók (konvenció szerint PascalCase írásmóddal):

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

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

Egy mezőhöz opcionálisan rendelhetsz kezdőértéket. Ha egy mező nem kap kezdőértéket, akkor a típusának alapértékét veszi fel. Egy példány mezőértékeit pont jelöléssel érheted el és frissítheted.

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;

A privát mezőket általában egy metódus meghívásának mellékhatásaként frissítjük. Az ilyen metódusok általában nem adnak vissza értéket; ebben az esetben a visszatérési típus void kell hogy legyen:

class CarImporter {
    private int carsImported;

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

Utasítások

Ebben a feladatban egy távirányítású autóval fogsz játszani, amire végre összegyűjtötted a pénzt.

Az autók feltöltött (100%-os) akkumulátorral indulnak. Valahányszor elvezetsz egy autót a távirányítóval, 20 métert tesz meg, és az akkumulátor egy százalékát veszíti.

A távirányítású autón van egy menő LED-kijelző, amely két adatot mutat:

  • A megtett teljes távolságot, így megjelenítve: "Driven <METERS> meters".
  • Az akkumulátor hátralévő töltöttségét, így megjelenítve: "Battery at <PERCENTAGE>%".

Ha az akkumulátor 0%-on áll, nem tudod tovább vezetni az autót, és a kijelzőn a "Battery empty" felirat jelenik meg.

Hat részfeladat vár rád, amelyek mindegyike a távirányítású autó példányaival dolgozik.

1. Vásárolj egy vadonatúj távirányítású autót

Valósítsd meg a (statikus) JedliksToyCar.buy() metódust, amely egy vadonatúj távirányítású autó példányt ad vissza:

JedliksToyCar car = JedliksToyCar.buy();

2. Jelenítsd meg a megtett távolságot

Valósítsd meg a JedliksToyCar.distanceDisplay() metódust, amely a LED-kijelzőn látható távolságot adja vissza:

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

3. Jelenítsd meg az akkumulátor töltöttségét

Valósítsd meg a JedliksToyCar.batteryDisplay() metódust, amely a LED-kijelzőn látható akkumulátor-töltöttséget adja vissza:

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

4. Frissítsd a megtett méterek számát vezetéskor

Valósítsd meg a JedliksToyCar.drive() metódust, amely frissíti a megtett méterek számát:

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

5. Frissítsd az akkumulátor töltöttségét vezetéskor

Frissítsd a JedliksToyCar.drive() metódust úgy, hogy az akkumulátor töltöttségét is frissítse:

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

6. Akadályozd meg a vezetést, ha lemerült az akkumulátor

Frissítsd a JedliksToyCar.drive() metódust úgy, hogy lemerült (0%-os) akkumulátor esetén se a megtett távolság ne növekedjen, se az akkumulátor töltöttsége ne csökkenjen:

JedliksToyCar car = JedliksToyCar.buy();

// Drain the battery
// ...

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

car.batteryDisplay();
// => "Battery empty"
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Java Exercism

Készen állsz elkezdeni a(z) Jedlik játékkocsija feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Java nyelvet 26 fogalom158 feladat segítségével, valódi emberi mentorálással, mindez ingyen.