Informatika2-2013/Hazi10

A MathWikiből

A házifeladat, hogy megvalósítsátok azon osztályokat melyek megjelennek ezen a diagrammon: http://math.bme.hu/~kkovacs/info2/uml.jpg

A nyilak az õsöket jelzik, tehát pl a Madarak osztály az Emlosok-bõl örököl (az ékezeteket vegyétel úgy hogy nincsnek ott a képen). A cellákban fekete betûvel van az osztály neve, kékkel az adattagok, és zölddel a metódusok.

A következõkben leírom részletesebben mi mit csinál:

  • Gerincesek:
    • eletben: True/False érték, amikor létrejön egy gerinces ez alapból True
    • sebesseg: az állat maximális sebessége, ezt meg kell adnunk az állat létrejöttekor (így minden leszármozottjában is)
  • Halak
    • uszonyokSzama: a hal uszonyainak a száma, létrejöttekor meg kell adni
  • Emlõsök
    • labakSzama: az emlõs lábainak a száma, létrejöttekor meg kell adni, de a leszármazottjaiban nem feltétlen
  • Madarak
    • koltozo: True/False érték, True, ha a madár költözõmadár, False különben
  • Morgóhal
    • morog: kiírja a kimenetre, hogy "morrmorr"
    • szarnyakSzama: a hal szárnyainak a száma, legyen egyenlõ az uszonyainak a számával
  • Kõhal
    • gyilkol: egyetlen paramétere egy másik gerinces állat (nem kell ellenõrizni, hogy tényleg az-e), beállítja a másik állat eletben adattagját False-ra
    • tuskekSzama: a hal tüskéinek a száma, meg kell adni létrejöttekor
  • Pocok
    • pofazacsko: az állat pofazacskójában található kaja darabszáma, létrejöttekor 0
    • raktaroz: növeli eggyel a pofazacskója tartalmát
  • Macska
    • vadasz: bemenete egy másik gerinces állat (mint a gyilkol), és a másik állat eletben adattagját False-ra állítja, feltéve, hogy a másik állat nem Kõhal, mert ebben az esetben a saját eletben adattagját állítja False-ra (12. gyakról: type(allat) == Kohal paranccsal tudjatjuk meg, hogy az allat objektum kõhal-e)
    • haziMacska: True/False érték, True, ha az adott macska házimacska, False egyébként, létrejöttekor meg kell adni
  • Varju
    • karog: kiírja a kimenetre, hogy "karkar"
    • theMorrigan: True/False érték, True, ha az adott varjú a Morrigan, False különben, létrejöttekor meg kell adni, de alapértelmezetten a paraméter értéke False (ha nem adjuk meg akkor alapból False lesz)
  • Jégmadár
    • halaszo: True/False érték, tud-e halászni az adott jégmadár vagy sem, létrejöttekor meg kell adni
    • vadasz: bemenete egy másik gerinces állat (mint a macska vadasz-a), de csak akkor állítja False-ra a másik állat eletben adattagját, ha a másik állat egy Morgóhal és õ magának a halaszo adattagja True

A Macska és Pocok-nak legyen létrejöttkor mindig 4 lába, ezt ne kelljen nekik megadni.

Értelemszerûen, minden leszármazott hívja meg az õsosztály __init__-jét (a 12. gyakorlaton tanult super függvénnyel).

!!! SPOILER !!!

Egy példa osztály (ez is legyen azért benne):

class Macska(Emlos):
    def __init__(self, sebesseg, hazi):
        super(Macska, self).__init__(sebesseg, 4) # a 4 a labakSzama, mivel itt az Emlosok osztaly __init__-jét hívom meg
        self.haziMacska = hazi
    def vadasz(self, masik):
        if type(masik) == Kohal:
            self.eletben = False
        else:
            masik.eletben = False
Személyes eszközök