Informatika2-2013/Hazi10
A MathWikiből
(Változatok közti eltérés)
31. sor: | 31. sor: | ||
** '''halaszo''': True/False érték, tud-e halászni az adott jégmadár vagy sem, létrejöttekor meg kell adni | ** '''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 | ** '''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): | ||
+ | |||
+ | <python> | ||
+ | class Macska(Emlos): | ||
+ | def __init__(self, seb, 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 | ||
+ | </python> |
A lap 2013. május 16., 00:08-kori változata
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, seb, 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