Járművek

A teljes feladat során el kell készítenetek hat osztályt: egyet a járművek közös ősének (zh.Vehicle), egyet a motork kezelésére (zh.Motor), egyet az autók kezelésére (zh.Car), egyet a garázsok jellemzésére (zh.Garage), egyet a járművek szöveggé alakítására / szöveggből visszaolvasására (zh.Builder), egyet a járművek mentésére / betöltésére (zh.VhecileIO).

A feladatban szereplő járműveknek van márkája és kerékszáma. Két jármű akkor egyenlő, ha azons típusúak, és a márkájuk is megegyezik.

A feladatban szereplő garázsokhoz lehet járművet hozzáadni, járművet eltávolítani, meg lehet róla tudni, hogy ott parkol-e egy bizonyos jármű, hogy mennyi az összes hely, mennyi a szabad hely, mennyi a foglalt hely, és el lehet kérni a bent parkoló járművek listáját.

Segítségül le lehet tölteni a vehiclezh.zip file-t, mely teszteket tartalmaz a lehető legprecízebb megoldás elkészítéséhez. Azonban fontos megjegyeznünk, hogy a tesztek lefutása nem garncia a jegy megszerzésére, mivel csak olyan hibákra tudunk tesztet készíteni, ami eszünkbe jut. Sajnos az elmúlt ZH-k szomorú tapasztalata, hogy a hallgatók sokkal változatosabban képesek elrontani a forrás kódot, mint sem azt mi el tudnánk képzelni. Fontos észrevennünk, hogy a cél nem az, hogy megfeleljünk a teszteknek, hanem hogy helyesen implementáljuk a feladatot. Persze ha nem fut le a teszt, valószínűleg a megoldásunk sem jó, de ez a kapcsolat továbbra sem implikálja, hogy helyesen lefutó teszt esetén helyes a megoldásunk is.


a. feladt: A járművek

Implementáld a zh.Vehcile absztrakt osztályt, valamint a zh.Motor, zh.Car leszármazott osztályokat. A feladat elkészítsében a test.VehicleTest lehet a segítségedre.

A zh.Vehcile publikus felülete:

A zh.Motor publikus felülete:

A zh.Car publikus felülete:


b. feladat: A garázs

Implementáld a zh.Garage osztályt. A feladat elkészítésében a test.GarageTest lehet a segítségedre.

A publikus felület:


c. feladat: Az építő

Implementáld a zh.Builder osztályt. A feladat elkészítésében a test.BuilderTest lehet a segítségedre.

A publikus felület:


d. feladat: A file kezelő

Implementáld a zh.VehicleIO osztályt. A feladt elékszítésében a test.IOTest lehet a segítségedre.

A publikus felület:

  • static void save(String, List<Vehicle>) throws FileNotFoundException Az első paraméter azon file neve, melybe lementi a második paraméterként kapott lista elemeit. A kiment tulajdonságai:
    • Minde sorban csak egy jármű van.
    • Minden jármű *márka*:*típus* alakú
      • A zh.Motor típusa: motor
      • A zh.Car típusa: car
  • static List<Vehicle> load(String) throws IOException A paraéterül kapott filenév által jelölt file-t megnyitja, és kiolvassa a benne lévő járműveket. A file tulajdonságai:
    • Minde sorban csak egy jármű van.
    • Minden jármű *márka*:*típus* alakú
      • A zh.Motor típusa: motor
      • A zh.Car típusa: car