<< Prvý projekt s JPAZ2 frameworkom | Obsah | Opakovanie skupiny príkazov (pevný počet opakovaní) >>
Vylepšovanie existujúcich dobrých vecí je v bežnom živote užitočná stratégie. Určite je lepšie niečo dobré vylepšiť, než začať vytvárať niečo nové úplne od základov. A táto stratégia je jeden z najdôležitejších konceptov objektovo orientovaného programovania.
Doteraz nami vytvárané korytnačky, ktoré prišli do nášho programu z JPAZu (tam je nejako napísané, aké vlastnosti a metódy má korytnačka, ako sa kreslia čiary, ako sa otáča, ...), vedia toho celkom dosť. Radi by sme však v našich programoch mali "chytrejšie" korytnačky, ktoré toho vedia ešte viacej. Ako ale získať "chytrejšie" korytnačky? Jedna z inšpirácii je šľachtenie rastlín - zoberieme nejakú odrodu rastlín, "čosi porobíme", a dostaneme novú lepšiu odrodu.
Teraz sa naučíme postup, ktorým môžeme vytvoriť nový - lepší druh korytnačiek. Taký druh, že korytnačky tejto novej triedy budú poznať nejaké metódy navyše. Novú triedy spravíme rozšírením existujúcej triedy Tutle
. Triedu si možno predstaviť ako akúsi šablónu, vzor – "genetickú informáciu", ktorú pri narodení (vytvorení) dostáva objekt danej triedy. Táto šablóna predpisuje aké metódy má objekt (aké "príkazy" pozná) a ako sa objekt správa pri konkrétnych metódach.
Vytvorenie vlastnej rozšírenej triedy s novými metódami (video-tutoriál) |
Pripomeňme, že v tomto postupe sme vytvorili novú triedu s menom MojaKorytnacka
pričom sme pri jej vytváraní povedali prostrediu Eclipse, aby táto nová trieda rozširovala triedu Turtle
. Inými slovami, aby každý vytvorený objekt triedy MojaKorytnacka
vedel nielen všetko čo bežné korytnačky, ale aj niečo navyše. V príklade sme naučili objekty triedy MojaTurtle
novú metódu, ktorá nakreslila trojuholník:
Všimnime si, že v jednotlivých príkazoch používame slovíčko this
. Toto slovíčko hovorí, že chceme volať metódu samého seba. This
si môžeme predstaviť ako slovíčko "ja" (je to forma uvedomenia objektu). Pri písaní metód treba mať stále na zreteli, že to, čo programujeme, je šablóna "správania" pre všetky objekty vytváranej triedy. A práve slovíčko this
reprezentuje ten objekt, ktorý sa v danom okamihu správa podľa tejto šablóny.
Aby sme naše "novo vyšľachtené plemeno" korytnačiek vyskúšali, musíme upraviť kód v triede Spustac
. Pridáme teda pár už známych príkazov, ktoré vytvoria premennú referencujúcu objekt triedy MojaKorytnacka
a vytvorený objekt nechajú skúmať ObjectInspector
-om:
Po spustení programu môžeme v ObjectInspector
-e vidieť, že objekt triedy MojaKorytnacka
(katka
) pozná naučenú metódu trojuholnik
. Je dôležité si všimnúť, že v objektoch triedy Turtle
(jozko
) sa nič nezmenilo. Samozrejme aj v Java programe už môžeme volať novopridané metódy u objektov triedy MojaKorytnacka
.
Pri programovaní nových metód môžeme využívať nielen metódy z triedy Turtle
, ale aj novonaučené metódy z triedy MojaKorytnacka
(viď metóda zahada
):
Poznámka: Pri programovaní vlastných "maľovacích" metód pre korytnačky je dobré dodržiavať pravidlo, že korytnačka je po skončení metódy na tej pozícii a v takom smere, ako bola pred vykonaním metódy.
Z experimentovania s ObjectInspector
-om, či z písania kódu, vieme, že metódy môžu mať aj parametre. Tie do novopridaných metód definovaných v triede MojaKorytnacka
pridáme veľmi jednoducho. Stačí medzi okrúhle zátvorky pri názve metódy pridať zoznam parametrov, ktoré má mať táto metóda. V tomto zozname sú informácie o jednotlivých parametroch oddelené čiarkou. Každý jeden parameter je definovaný dvojicou typ a názov parametra. Typ parametra je magické slovíčko, ktoré hovorí, aké sú povolené hodnoty pre parameter. Napríklad pre typ double je povolená hodnota ľubovoľné reálne číslo. Meno parametra je označenie parametra vo vnútri našej metódy. Vo všetkých príkazoch v metóde môžeme použiť namiesto konkrétnej hodnoty (100, 200, 3.4) aj parameter. Meno parametra vo vnútri metódy zastupuje konkrétnu hodnotu, ktorá bola zadaná pri volaní (spustení) tejto metódy.
Pozrime sa, ako bude vyzerať metóda trojuholník, ak ju zmeníme tak, že bude vyžadovať zadanie parametre určujúceho dĺžku strany kresleného rovnostranného trojuholníka.
A ešte metóda na nakreslenie obdĺžnika s parametrami určujúcimi jeho šírku a výšku.
Parametre, metódy a triedy si môžeme pomenovať skoro ľubovoľným spôsobom. Z dôvodu čitateľnosti však budeme používať tieto pravidlá:
<< Prvý projekt s JPAZ2 frameworkom | Obsah | Opakovanie skupiny príkazov (pevný počet opakovaní) >>