BlueJ a základy OOP Programování II 1. cvičení Alena Buchalcevová
Konzultační hodiny v ISu doc. Alena Buchalcevová Po 14:00-15:00 NAR 220 2
Cíle 1. cvičení pochopit pojmy: třída instance konstruktor metoda datový atribut zdrojový kód překlad seznámit se s BlueJ otevírání a ukládání projektů překlad aplikace vytváření instancí a spouštění metod prohlížení obsahu instance editace a ukládaní zdrojového kódu 3
Co potřebujete nainstalovat na svůj počítač SDK Java verze 8 Je nejlepší si jej stáhnout v rámci vývojového prostředí Netbeans Výukové vývojové prostředí BlueJ rozšíření PMD do BlueJ 4
Co potřebujete nainstalovat na svůj počítač/2 Vývojové prostředí Netbeans včetně Javy JDK verze 8 je na následujícím linku http://www.oracle.com/technetwork/java/javase/downloads /index.html 5
Co potřebujete nainstalovat na svůj počítač/3 BlueJ vývojové výukové prostředí pro Javu pro fungování je třeba mít nainstalováno JDK www.bluej.org Na školní síti je použita konfigurace BlueJ, která má kromě češtiny nastaveny i jiné barvy a upravené šablony pro vytváření tříd, rozhraní atd. Toto nastavení je pro studenty připraveno v balíčku zip, který se stáhne ze stránky na VŠE http://java.vse.cz/java/bluejinstalace stáhnete si zip soubor BlueJ-3.1.0.zip 6
BlueJ - nastavení kódování všechny projekty, které budeme používat na cvičení jsou v kódování UTF-8 pokud nepoužijete školní konfiguraci BlueJ, je třeba nastavit kódování UTF-8 7
Co potřebujete nainstalovat na svůj počítač/4 Instalace rozšíření pro PMD do BlueJ http://java.vse.cz/java/pmd pokud nyní spustíte BlueJ, tak u každé třídy máte možnost spustit kontrolu kódu - objeví se v nabídce po stisknutí druhého tlačítka na myši u příslušné třídy. 8
Úkoly na cvičení úkol 1 stáhněte si zip archiv projektu Tvary z is.bivs.cz a rozbalte jej otevřete projekt Tvary v BlueJ prohlédněte si třídy v projektu vytvořte instanci třídy Ctverec pomocí volání metod zkuste čtverec posunout, přebarvit podívejte se, jak se mění hodnoty datových atributů instance obdobně vytvořte instanci trojúhelníku, kruhu 9
Úkoly na cvičení úkol 2 vymažte plochu a vytvořte dvě instance čtverce Jak je od sebe rozlišíte? Jaké hodnoty mají jejich datové atributy? Zkuste s jedním z nich pohnout. Jak se změnily jeho datové atributy? 10
Projekt Obrazek stáhněte si z is.bivs.cz projekt Obrazek a otevřete jej v BlueJ kromě již známých tříd Kruh, Ctverec, Trojuhelnik a Platno je zde třída Obrazek úkol 3 Vytvořte instanci třídy Obrazek a zavolejte metodu kresli() Otázky Jaké datové atributy má objekt obrazek? Prohlédněte si zdrojový kód metody kresli() z jakých operací se vykreslení obrázku skládá - jaké instance se vytvářejí a jaké zprávy se jim posílají? 11
Datové atributy instance uchovávají informace o instanci mezi jednotlivými voláními metod každý datový atribut musí mít definován datový typ a jméno (identifikátor) to se nazývá deklarace nastavení počáteční hodnoty se nazývá inicializace pokud není u datových atributů uvedena, použije se implicitní počáteční hodnota se často přiřazuje v konstruktoru na základě parametrů konstruktoru 12
Volání konstruktoru okno = new Ctverec(); jméno proměnné (identifikátor) operátor new pro vytvoření instance jméno konstruktoru, v závorce se uvádějí hodnoty parametrů přiřazovací příkaz 13
Metody instance reprezentují dovednosti, činnosti, které může objekt provádět metody jsou deklarovány ve třídě metoda se skládá z: hlavičky (podpisu) metody a těla metody tvoří ho příkazy a deklarace lokálních proměnných 14
Typ void určuje, že metoda nic nevrací Deklarace metody instance s parametry bez návratové hodnoty Jméno metody deklarace lokální proměnné public void pomaluposunhorizontalne(int vzdalenost) { int delta; if(vzdalenost < 0) { delta = -1; vzdalenost = -vzdalenost; } else { delta = 1; } formální parametr metody } for(int i = 0; i < vzdalenost; i++) { vymaz(); xpozice += delta; kresli(); } 15
Bloky příkazů - sekvence blok příkazů je skupina příkazů uzavřená mezi složené závorky { } příkazy jsou prováděny postupně, podle pořadí uvedení metoda je vždy tvořena blokem příkazů, který může obsahovat další bloky 16
Volání metody instance pro volání metody instance je třeba mít vytvořenou instanci pro získání hodnoty z metody je třeba výsledek uložit do proměnné odpovídajícího typu skutečný parametr slunce. pomaluposunhorizontalne(80) odkaz na vytvořenou instanci 17
Projekt Obrazek/pokračování Úkol 5 upravte kód v metodě kresli() ve třídě Obrazek tak, aby střecha byla růžová a zeď šedá Úkol 6 Co dělá metoda setcernobily() ve třídě Obrazek? Úkol 7 vyzkoušejte metodu setbarevny() upravte ji, aby byla ve shodě s metodou kresli() Úkol 8 přidejte do obrázku dveře a komín 18
Projekt Obrazek/pokračování Úkol 9 vytvořte instanci třídy Auto vyzkoušejte oba konstruktory Úkol 10 Ve třídě Obrazek je předpřipravena metoda prujezdauta. Doplňte kód do metody tak, aby po jejím zavolání pod domečkem projelo auto použijte lokální proměnnou auto 19
Lokální proměnná (pomocná proměnná metody) použijeme ji v metodě pro uložení nějakého mezivýsledku po ukončení činnosti metody je zrušena deklarace a inicializace pomocné proměnné se od inicializace datového atributu liší: neuvádějí se modifikátory přístupu proměnné nejsou implicitně inicializovány - první hodnotu musí nastavit programátor 20
Úkol 11 doplňte metody prijezdauta(), při které auto přijede a odjezdauta(), při které auto odjede. 21
Domácí úkol 1 vlastní obrázek vytvořte v projektu novou třídu ObrazekNejakyNazev ve třídě bude metoda kresli(), která nakreslí Váš obrázek a slunce ve třídě budou metody pro nastavení černobílého a barevného obrázku ve třídě budou metody vychodslunce() a zapadslunce() - v noci by měl být obrázek černobílý, ve dne barevný 22