Abstract
Cílem této úlohy je studenta seznámit s používáním vývojového prostředí BlueJ a pomocí tohoto prostředí ověřit správné pochopení základních pojmů. V rámci úlohy bude vytvořena jednoduchá třída a její funkčnost bude ověřena pomocí testu pro nástroj JUnit.
Pro vyřešení této úlohy je třeba
umět alespoň základy práce s operačním systémem v příslušné učebně (Linux v B130, Windows v B116, B117, B311);
rozumět pojmům třída, instance, metoda, volání metody, parametry metody, návratová hodnota metody, atribut, typ (parametru, návratové hodnoty nebo atributu).
Výše zmíněné základní pojmy budou na příslušném cvičení vysvětleny.
Dnešní zadání bude přizpůsobeno tomu, aby i úplní začátečníci měli šanci úlohu bez problémů vyřešit. Pokud mezi ně nepatříte, bude se Vám možná zdát příliš jednoduché a zbytečně podrobné; v takové případě prosím vydržte, další zadání již budou stručnější a složitější.
Nejdříve si stáhneme a nainstalujeme prostředí BlueJ, abychom ho mohli vzápětí vyzkoušet.
Stáhněte si a nainstalujte vývojové prostředí BlueJ (http://www.bluej.org/).
Vytvořte si na některém síťovém disku pracovní adresář pb162 a do něj rozbalte archiv uloha1.zip.
Spusťte BlueJ a otevřete projekt (tj. adresář) uloha1, který vznikl rozbalením archívu v předchozím bodě.
Postupně se proklikejte do balíku
cz.muni.fi.pb162.task1
a v tomto balíku vytvořte
třídu FirstClass
.
Otevřete si ji v editoru a prohlédněte si ji.
Zkuste třídu přeložit.
Tímto jsme vytvořili naši první třídu, což je jakási šablona, podle níž se vytvářejí objekty (nazývané instance).
Nyní si zkusíme vytvořit instanci této třídy a zavolat její metodu
sampleMethod()
.
Vraťte se do okna s balíčkem
cz.muni.fi.pb162.task1
, klikněte pravým tlačítkem
na třídu FirstClass
a vyberte položku new
cz.muni.fi.pb162.task1.FirstClass()
. V následujícím okně pak
potvrďte jméno instance firstCla1
.
Zkontrolujte si, že se vám ve spodní části okna objevil červený
obdélník se zaoblenými rohy a textem
firstCla1:FirstClass
. Tento obdélník reprezentuje
nově vytvořenou instanci třídy FirstClass
, kterou
jsme pojmenovali firstCla1
.
Klikněte na tento obdélník pravým tlačítkem myši a z menu si
vyberte položku int sampleMethod(int y)
. Objeví se
dialog, v němž můžete vložit parametry vybrané metody. Naše metoda má
pouze jeden parametr typu int, takže vložte nějaké celé číslo. Po
stisknutí tlačítka OK se metoda zavolá (provede) a vzápětí objeví okno
s výsledkem, což by mělo být stejné číslo, které bylo vloženo v
předchozím dialogovém okně.
Všimněte si, že hodnota výsledku volání této metody závisí také na
hodnotě atributu x
. Nyní si vyzkoušíme, co se stane,
když hodnotu tohoto atributu změníme.
Nejdříve si připravíme metodu, která umožní hodnotu atributu změnit. Do kódu třídy doplňte následující kód metody:
public void setX(int x) { this.x = x; }
Třídu znovu přeložte a opět si vytvořte její instanci s názvem
firstCla1
.
Nyní opět klikněte pravým tlačítkem myši na náš objekt
firstCla1
a v menu vyberte položku
Inspect. Objeví se dialogové okno obsahující
hodnoty všech atributů daného objektu. V našem případě jde pouze o
atribut x
typu int
který má
hodnotu nula. Zkuste zavolat metodu setX(int x)
a
tuto hodnotu změnit na jiné číslo. Přesvědčte se, že se hodnota
skutečně změnila.
Opět zavolejte metodu int sampleMethod(int y)
s nějakým celočíselným parametrem. Tentokrát by měl být výsledkem
součet tohoto parametru a hodnoty vložené do proměnné
x
v předchozím kroku.
Vyzkoušeli jsme si volání metod a nyní přikročíme ke spouštění testů, které budou součástí každé Vaší úlohy.
Klikněte pravým tlačítkem myši na zelenou testovací třídu
FirstClassTest
a v menu vyberte položku
Compile. Tím se testovací třída přeloží
(zkompiluje).
Nyní opět na testovací třídu klikněte pravým tlačítkem a vyberte položku Test All. Tímto příkazem spustíte všechny testy, které daná testovací třída obsahuje. Mělo by se objevit okno s výsledky testů, obsahující informaci, že je vše v pořádku.
Nyní si zkuste se zdrojovým kódem Vaší třídy pohrát a udělat v
něm nějakou chybu (např. změnit hodnotu atributu x
inicializovaného v konstruktoru třídy). Potom se podívejte, jak
dopadnou testy. Před odevzáním však úlohu
nezapomeňte vrátit do původního bezchybného stavu!
Nyní už zbývá pouze několik důležitých formalit:
V komentáři v hlavičce třídy nahraďte text Write a description of class FirstClass here textem První třída jako první úloha do kurzu PB162. Dále nahraďte řetězec (your name) řetězcem obsahujícím Vaše jméno, příjmení a emailovou adresu (např. Petr Adámek, xadamek2@fi.muni.cz).
Nyní si zkuste v pravém horním rohu z rozbalovací nabídky (ComboBox) vybrat položku Interface, která Vám místo zdrojového kódu zobrazí popis rozhraní dané třídy generovaný pomocí nástroje JavaDoc.
Před odevzdáním úlohy si zkontrolujte:
Zda jde úloha přeložit a zda jdou přeložit i všechny testy.
Zdali všechny testy projdou bez chyby.
Zda jste nezapomněli správně vyplnit hlavičky všech tříd ve formátu JavaDoc (popis třídy, autor, popis všech metod, apod.)
Je důležité, aby se studenti prostředí BlueJ naučili dobře ovládat, proto bych považoval za užitečné, celý postup názorně předvést a vysvětlit s využitím projektoru. Pokusil bych se alespoň rámcově vysvětlit pojmy uvedené v prerekvizitách pro vyřešení úlohy.