Úloha číslo 1 Používání prostředí BlueJ Petr Adámek 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. _________________________________________________________________ Table of Contents Co je potřeba znát Zadání Odevzdání úlohy Metodické pokyny Pokyny pro opravování Co je potřeba znát 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. Zadání 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. Odevzdání úlohy Před odevzdáním úlohy si zkontrolujte: 1. Zda jde úloha přeložit a zda jdou přeložit i všechny testy. 2. Zdali všechny testy projdou bez chyby. 3. 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.) Metodické pokyny 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. Pokyny pro opravování * Prověřte, že studenti do hlavičky třídy správně doplnili své jméno a popis třídy.