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;
}
}
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:
"Driven <METERS> meters"."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.
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();
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"
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%"
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"
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%"
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"
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.