Pomocí volání metod zkuste čtverec posunout, přebarvit a sledujte, jak se mění hodnoty datových atributů instance.
Cvičení 1 - úkol 1 - část 4
K tomu, abychom mohli přesunout, či přebarvit vytvořený čtverec se nejdříve musíme podívat na metody, které nám tento objekt poskytuje. Pokud klikneme pravým tlačítkem myši na odkaz na objekt, zobrazí se nám následující nabídka:

Nyní si vysvětlíme, co jednotlivé části nabídky znamenají
Nad první čarou je informace o tom, z kterého objekt náš objekt dědí základní vlastnosti. Protože třída
Ctverec
není odvozena z žádné třídy, je její rodič třída Object - tedy třída, z které jsou zděděny všechny objekty automaticky. Kliknutím na název rodičovské třídy se nám zobrazí seznam metod, které jsou v rodičovské třídě definovány a můžeme je volat.Více informací o třídě Object se dozvíme až na konci semestru.Pod první čarou následuje seznam metod, které objekt poskytuje svému okolí. Tyto metody, které objekt poskytuje, můžeme volat prostřednictvím vytvořeného odkazu. Před názvem metody, např.
void posunDolu()
, je uveden typ návratové hodnoty. V případě, že je typvoid
, nevrací metoda žádná data. Spuštění takové metody nám tedy nevrátí žádný výsledek, pouze změní stav daného objektu.V seznamu můžeme vidět dva typy metod, a to:
- např. metoda
void posunVpravo()
je metodou bez parametrů, což lze poznat z toho, že mezi závorkami nejsou žádné parametry uvedeny - metoda ke svému spuštění nepotřebuje žádné dodatečné informace. - např. metoda
void zmenBarvu(String novaBarva)
je metodou s parametrem. Metoda, jak název napovídá, provede změnu obarvení daného objektu typuCtverec
.void
před názvem metody značí, že metoda nevrací žádnou hodnotu.String novaBarva
v závorkách za názvem metody značí, že metoda potřebuje ke svému spuštění dodatečnou informaci - v tomto případě jméno barvy, na kterou se má čtverec obarvit. Očekává od nás tedy jméno barvy -String
znamená, že očekává jméno barvy zadané jako řetězec.
- např. metoda
V posledním oddíle jsou dvě nabídky:
- Prohlížet: stiském této nabídky vyvoláme okno s informacemi o objektu. Zobrazí se nám informace o všech
proměnných daného objektu. Objekt typu
Ctverec
má tyto proměnné:velikost, xPozice, yPozice, barva
- slovoprivate
na začátku značí, že proměnná je privátní / soukromá, a nelze ji tedy přímo měnit. Změna takového proměnné může proběhnout pouze pomocí volání některé z metod.String
čiint
před názvem proměnné určuje její typ - v tomto případě tedy buď celé číslo (to je typint
) nebo řetězec (to je typString
) - Odstranit: touto volbou dojde k odstranění odkazu na vytvořený objekt. POZOR - při odstranění dojde pouze k vymazání odkazu (ukazatele) na existující objekt, ale ne k odstranění skutečného objektu. K odstranění skutečného objektu dojde automaticky, o odstraňování objektů, na které neexistuje již žádný odkaz se stará Garbage Collector
- Prohlížet: stiském této nabídky vyvoláme okno s informacemi o objektu. Zobrazí se nám informace o všech
proměnných daného objektu. Objekt typu
Pro splnění tohoto úkolu je postup následující:
- Kliknout pravým tlačítkem myši na odkaz
mujNovyCtverec
Vybrat nabídku Prohlížet abychom mohli sledovat, jak se voláním metod mění vlastnosti daného objektu.
Jak můžeme vidět, výchozí hodnoty objektuCtverec
jsou napříkladbarva: červená, velikost: 30.
- Nyní máme na obrazovce tři okna - BlueJ prostředí, okno s vlastnostmi objektu
Ctverec
a Demonstrační plátno - Pravým tlačítkem myši nyní klikneme na odkaz
mujNovyCtverec
a vybereme například metoduposunNahoru()
- Zavolání metody způsobí na plátně posunutí obrazce směrem dolů. Zároveň s tím, si můžeme všimnout změny ve vlastnostech objektu - protože jsme posouvali čtverec směrem dolů, změnila se hodnota
yPozice
na hodnotu z 50 na 30. - Nyní pojďme změnit barvu: zavoláme metodu
zmenBarvu(String barva)
- tedy metodu s parametrem.Zobrazí se nám následující nabídka:
Jak vidíme, jsme dotázáni na název barvy, na kterou se čtverec má přebarvit. V komentáři máme nápovědu, které barvy budou rozpoznány.
Vepíšeme tedy například
"zelena"
. Barvu je třeba zapsat v uvozovkách - text v uvozovkách je vyhodnocen jako řetězec (objekt typuString
), a objekt tohoto typu je požadován touto metodou.Jak můžeme sledovat po potvrzení dialogu dojde k překreslení čtverce na zelenou barvu a hodnota instanční proměnné se změnila na hodnotu
zelena
.
Ukázka
Nahoru