BlueJ a základy OOP Programování II 1. cvičení Alena Buchalcevová
doc. Alena Buchalcevová Po 14:00 - 15:00 NAR 220
©Alena Buchalcevová
v ISu
Programování II cvičení
Konzultační hodiny
2
• 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
©Alena Buchalcevová
• pochopit pojmy: • třída • instance • konstruktor • metoda • datový atribut • zdrojový kód • překlad
Programování II cvičení
Cíle 1. cvičení
3
• Je nejlepší si jej stáhnout v rámci vývojového prostředí
Netbeans • Výukové vývojové prostředí BlueJ
Programování II cvičení
• SDK Java verze 8
©Alena Buchalcevová
Co potřebujete nainstalovat na svůj počítač
• rozšíření PMD do BlueJ
4
Programování II cvičení
• 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 •
©Alena Buchalcevová
Co potřebujete nainstalovat na svůj počítač/2
5
• 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 •
Programování II cvičení
BlueJ
©Alena Buchalcevová
Co potřebujete nainstalovat na svůj počítač/3
6
• pokud nepoužijete školní konfiguraci BlueJ, je třeba nastavit kódování UTF-8
©Alena Buchalcevová
• všechny projekty, které budeme používat na cvičení jsou v kódování UTF-8
Programování II cvičení
BlueJ - nastavení kódování
7
• 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.
Programování II cvičení
Instalace rozšíření pro PMD do BlueJ
©Alena Buchalcevová
Co potřebujete nainstalovat na svůj počítač/4
8
• 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
©Alena Buchalcevová
• úkol 1
Programování II cvičení
Úkoly na cvičení
9
• 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?
©Alena Buchalcevová
• úkol 2
Programování II cvičení
Úkoly na cvičení
10
• 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()
©Alena Buchalcevová
• stáhněte si z is.bivs.cz projekt Obrazek a otevřete jej v BlueJ
Programování II cvičení
Projekt Obrazek
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
• 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
©Alena Buchalcevová
• uchovávají informace o instanci mezi jednotlivými voláními metod
Programování II cvičení
Datové atributy instance
12
Programování II cvičení
Volání konstruktoru
jméno proměnné (identifikátor)
operátor new pro vytvoření instance
přiřazovací příkaz
©Alena Buchalcevová
okno = new Ctverec();
jméno konstruktoru, v závorce se uvádějí hodnoty parametrů 13
• 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
©Alena Buchalcevová
• reprezentují dovednosti, činnosti, které může objekt provádět
Programování II cvičení
Metody instance
14
public void pomaluPosunHorizontalne(int vzdalenost) { int delta; if(vzdalenost < 0) { delta = -1; vzdalenost = -vzdalenost; } else { delta = 1; }
deklarace lokální proměnné
for(int i = 0; i < vzdalenost; i++) { vymaz(); xPozice += delta; kresli(); } }
formální parametr metody
Programování II cvičení
Jméno metody
©Alena Buchalcevová
Typ void určuje, že metoda nic nevrací
Deklarace metody instance s parametry bez návratové hodnoty
15
• 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
©Alena Buchalcevová
• blok příkazů je skupina příkazů uzavřená mezi složené závorky {}
Programování II cvičení
Bloky příkazů - sekvence
16
skutečný parametr
slunce. pomaluPosunHorizontalne(80)
odkaz na vytvořenou instanci
©Alena Buchalcevová
• 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
Programování II cvičení
Volání metody instance
17
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()
©Alena Buchalcevová
Úkol 5
Programování II cvičení
Projekt Obrazek/pokračování
Úkol 8
přidejte do obrázku dveře a komín
18
Ú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
©Alena Buchalcevová
Úkol 9 vytvořte instanci třídy Auto – vyzkoušejte oba konstruktory
Programování II cvičení
Projekt Obrazek/pokračování
19
• 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
Programování II cvičení
• použijeme ji v metodě pro uložení nějakého mezivýsledku
©Alena Buchalcevová
Lokální proměnná (pomocná proměnná metody)
• proměnné nejsou implicitně inicializovány - první hodnotu musí nastavit programátor 20
Programování II cvičení
• doplňte metody prijezdAuta(), při které auto přijede a odjezdAuta(), při které auto odjede.
©Alena Buchalcevová
Úkol 11
21
Programování II cvičení
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ý
©Alena Buchalcevová
Domácí úkol 1 – vlastní obrázek
22