Projekty pro výuku programování v jazyce Java
|
|
- Jarmila Brožová
- před 9 lety
- Počet zobrazení:
Transkript
1 JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil VTI Vedoucí práce: RNDr. Jaroslav Icha
2 Anotace: Tato práce se zabývá výukou programování v objektově orientovaném programovacím jazyce Java. Práce obsahuje okomentované zdrojové kódy na nichž jsou vysvětleny základy programování. Dále práce obsahuje zadání dílčích projektů sloužících k procvičení popisovaného problému. Řešení těchto projektů je uvedeno v příloze. Klíčová slova: Objektově orientované programování Java Výuka Řešené projekty BlueJ This thesis deals with the tuition of programming in object oriented programming language Java. It contains source codes with comments which explain the basics of programming. Further on this thesis contains the assigments of several partial projets used for practising the described problem. The solution to this projets is given in the supplement. Key words: Object oriented programming Java Tuition solved projets BlueJ
3 Úvod V průběhu studia na Pedagogické fakultě mě nejvíce zaujaly předměty týkající se objektově orientovaného programování. Rozhodl jsem se proto zpracovat bakalářskou práci na téma: Projekty pro výuku programování v jazyce Java. Tato bakalářská práce je určena studentům prvního ročníku pedagogické fakulty jako doplňkový materiál ke studiu. A to především studentům dálkového studia. Stejně dobře ji však mohou využít i studenti denního studia jako částečnou náhradu za vynechanou lekci. Pro potřeby výuky jsem zvolil vývojové prostředí BlueJ, které je vyvinuté speciálně pro výuku objektově orientovaného programování v jazyce Java. Práce je rozdělena do několika kapitol. Každá kapitola začíná stručným úvodem, který informuje o znalostech nutných ke studiu dané kapitoly a o dovednostech, které čtenář studiem příslušné kapitoly získá. Dále následuje ukázkový příklad. Příklad se skládá ze zdrojového kódu, který je po částech popsán a vysvětlen. Každý ukázkový příklad si může čtenář stáhnout a vyzkoušet. Následuje série úkolů, při kterých dochází k úpravám či k rozšíření kódu. První kapitola má za úkol seznámit s programovacím jazykem Java a vývojovým prostředím BlueJ, informovat o zdrojích, kde se dají získat potřebné vývojové nástroje, a dále pojednává o způsobu instalace. Druhá kapitola se věnuje základním dovednostem týkajících se programovacího jazyka. Je rozdělena do následujících podkapitol: 1. primitivní typy 2. pole 3. základní řídící konstrukce 4. rozhraní (interface) 5. abstraktní třídy 6. vnitřní třídy Třetí kapitola pojednává o možnosti využití některých knihoven a o práci s nimi. Je rozdělena na podkapitoly: 1. kolekce (java.util) 2. datové toky (java.io) 3. grafické rozhraní (javax.swing)
4 Čtvrtá kapitola seznamuje čtenáře se základními principy objektově orientovaného programování. Dělí se na podkapitoly: 1. objekt, třída 2. dědičnost 3. polymorfismus
5 Ukázkový příklad Autorizovaný přístup Nutné znalosti Pro studium této kapitoly jsou nezbytné znalosti pojmů jako je třída, metoda a atribut. Není nutné pouze tyto pojmy znát, ale také umět s nimi pracovat. Dále jsou zvláště v závěru kapitoly předpokládané základní znalosti týkající se výjimek. Cíle kapitoly Cílem kapitoly je seznámit čtenáře s možností přístupu k datům zapouzdřených uvnitř třídy pomocí metod. V těchto metodách mohou být na vstupní parametry kladeny další podmínky, které vyplývají z charakteru úlohy. Demonstrační příklady jsou umístěny na internetové stránce Jedním ze základních pilířů objektově orientovaného programování je autorizovaný přístup k datům. Principem je skrytí dat uvnitř instance třídy a jejich zpřístupnění pouze pomocí metod. Nejdříve se pokusím na jednoduchém příkladě demonstrovat, k jakým problémům by mohlo dojít při nepoužívání autorizovaného přístupu. K tomu použiji třídy Zamestnanec a GUI. Třída Zamestnanec bude představovat zaměstnance školy. Každý zaměstnanec bude mít tři atributy. Atribut jmeno bude označovat jméno zaměstnance, obdobně atribut prijmeni. Atribut pocethodin bude představovat počet hodni odpracovaných zaměstnancem. Dále obsahuje metodu tostring(), která poskytuje znakovou reprezentaci objektu. Třída GUI bude představovat formulář(obr 1.), který bude sloužit k zadávání údajů o zaměstnanci a zároveň bude vypisovat informace o vytvořených zaměstnancích do listu.
6 Obr 1. Jak vidíte formulář obsahuje tři textová pole pojmenovaná tpjmeno, tpprijmeni, tppocethodin, která jsou určena pro vstup jednotlivých parametrů. Dále obsahuje grafickou komponentu List nazvanou list, která slouží ke zobrazování vytvořených zaměstnanců. Poslední komponentou, o které se budu zmiňovat, je tlačítko uložit nazvané tlulozit, po jehož stisknutí se vykoná metoda public void actionperformed(actionevent e). Detailnějším popisem se nebudu zabývat, gui není předmětem této práce. Uvnitř třídy GUI je také vytvořena instance třídy ArrayList, která slouží k uchovávání instancí typu Zamestnanec. private ArrayList<Zamestnanec> seznamzamestnancu; Třída Zamestnanec public class Zamestnanec { /** * Proměná představující jméno zaměstnance */ public String jmeno; /** * Proměná představující příjmení zaměstnance */ public String prijmeni; /**
7 * Proměná představující počet odpracovaných hodin */ public int pocethodin; /** * Konstruktor pro objekt třídy Zaměstnanec */ public Zamestnanec() { public String tostring() { return jmeno + " " + " " +prijmeni + " " + String.valueOf(pocetHodin); Třída GUI public class GUI extends JFrame { JButton tluloz; /** * Textové pole sloužící pro vstup parametru jmeno. */ JTextField tpjmeno; /** * Textové pole sloužící pro vstup parametru prijmeni. */ JTextField tpprijmeni; /** * Textové pole sloužící pro vstup parametru pocetdeti. */ JTextField tppocetdeti; /** * Seznam sloužící k uchovávání instancí typu Zamestnanec. */ private ArrayList<Zamestnanec> seznamzamestnancu; /** * Grafická komponenta sloužící k zobrazování údajů o Zaměstnancích.
8 */ JList list; GUI() { tluloz.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { String jmeno = tpjmeno.gettext(); String prijmeni = tpprijmeni.gettext(); int pocethodin = Integer.valueOf(tpPocetDeti.getText()); Zamestnanec zm = new Zamestnanec(); zm.jmeno = jmeno; zm.prijmeni = prijmeni; zm.pocethodin = pocethodin; seznamzamestnancu.add(zm); li.setlistdata(seznamzamestnancu.toarray()); public static void main(string[] args) { new GUI().setVisible(true); Jak vidíte, nejzajímavější je zde metoda public void actionperformed(actionevent e). Jsou zde deklarovány tři nové proměnné metody: jmeno, prijmeni a pocethodin, do kterých jsou ukládány hodnoty z textových polí. Dále zde dochází k vytvoření instance typu Zamestnanec a následně k uložení hodnot z textových polí do příslušných instančních proměnných instance třídy Zamestnanec a to pomocí metody gettext(), která vrací objekt typu string. V závěru je nově vytvořený zaměstnanec přidán do seznamu zaměstnanců, jehož obsah je posléze vypsán do listu.
9 Nyní mohu program spustit a vytvořit svého prvního zaměstnance (obr 2). Obr 2. Jak vidíte z obrázku, hodnoty, které jsem zadal do textových polí nebyly zvoleny nejvhodněji. Počet odpracovaných hodin je záporný. Jméno a příjmení začíná malým písmenem. Z hlediska kódu je ale vše v pořádku jmeno a prijmeni jsou proměnné typu string a pocethodin proměnná typu int. Jak zajistit, aby do proměnných jmeno a prijmeni mohly být ukládány pouze hodnoty typu string začínající velkým písmenem a do proměnné pocethodin pouze nezáporná celá čísla? Použiji následující řešení: Instanční proměnné uvodím klíčovým slovem private, tím znepřístupním tyto proměnné ze všech tříd, kromě třídy Zamestnanec. Pokusíme-li se k některé z těchto privátních proměnných přistoupit z jiné třídy něž je Zamestnanec například voláním zm.jmeno = petr; v metodě void actionperformed(actionevent e) třídy GUI, bude nám ohlášena chyba: jmeno has private access in Zamestnanec, již při kompilaci. K těmto privátním proměnným budu přistupovat pomocí veřejných metod, kde mohu klást na vstupní hodnoty další podmínky. Z pravidla se vytvářejí dvě metody pro jednu proměnnou. Jedna z metod, obvykle se její název vytváří z předpony get a jména proměnné, slouží k získání hodnoty proměnné. Druhá metoda, obvykle se její jméno skládá z předpony set a jména proměnné, slouží k uložení hodnoty do proměnné. Samozřejmě z hlediska češtiny tohle
10 není zcela korektní řešení, ale z hlediska programování se takto vytváří velmi dobře čitelný kód. Právě v metodě, určené pro uložení hodnoty do proměnné instance máme možnost omezit příslušnou podmínkou uložení dané hodnoty. Například metoda pro ukládání hodnoty do proměnné pocethodin by mohla vypadat následovně: public void setpocethodin(int pocethodin) { if (pocethodin>=0) this.pocethodin=pocethodin; Její ekvivalent metoda sloužící pro získání hodnoty uložené v instanční proměnné pocethodin by mohla vypadat takto: public int getpocethodin() { return pocethodin; Obdobným způsobem upravíme i přístup ke zbývajícím instančním proměnným třídy Zamestnanec. public void setjmeno(string jmeno) { if(jmeno.substring(0, 1).equals(jmeno.substring(0,1).toUpperCase())) this.jmeno = jmeno; public void setprijmeni(string prijmeni) { if(prijmeni.substring(0, 1).equals(prijmeni.substring(0,1).toUpperCase())) this.prijmeni = prijmeni; public String getjmeno() { return jmeno; public String getprijmeni() { return prijmeni;
11 Nyní ještě musíme provést drobnou úpravu v metodě void actionperformed(actionevent e) třídy GUI, nemůžeme již přistupovat k proměnným jmeno, prijmeni a pocethodin přímo, ale musíme použít již vytvořené metody. zm.setpocethodin(integer.valueof(tppocetdeti.gettext())); zm.setjmeno(tpjmeno.gettext()); zm.setprijmeni(tpprijmeni.gettext()); Nyní můžeme program zpustit a vytvořit si několik zaměstnanců. Použijeme-li hodnoty, které budou vyhovovat námi stanoveným podmínkám, budou tyto hodnoty uloženy do instančních proměnných. V opačném případě zůstane v instančních proměnných uložena jejich implicitní hodnota. Vše ukazuje následující obrázek: Obr 3. Neprojde-li hodnota našimi podmínkami, bylo by vhodné na tuto skutečnost upozornit. Například tak, že bude vyvolána výjimka. Nic nám nebrání v tom vytvořit novou výjimku typu IllegalArgumentExceptino a zajistit její vyhození příkazem throw při patřičné situaci. Následující příklad je ukázkou pozměněné metody setpocethodin, která vyhazuje při zadání záporného počtu hodin příslušnou výjimku. Obdobným způsobem jsou upraveny i metody setjmeno a setprijmeni.
12 public void setpocethodin(int pocethodin) { if (pocethodin<0) { throw new IllegalArgumentException("Pocet odpracovaných hodin nemůže být záporné číslo."); this.pocethodin=pocethodin; Bude-li nyní pomocí metody setpocethodin ukládána záporná hodnota, dojde za běhu programu k vyhození výjimky. V opačném případě se uloží hodnota parametru metody do proměnné pocethodin. K vyhození výjimky může dojít tedy při ukládání hodnot, proto by bylo vhodné uzavřít tyto části kódu do chráněné oblasti. V našem případě budeme odchytávat výjimky v metodě void actionperformed(actionevente) třídy GUI. Odchycení by mohlo vypadat třeba následovně: try { zm.setjmeno(tpjmeno.gettext()); catch(illegalargumentexception ex) { System.out.println(ex.toString()); try { zm.setprijmeni(tpprijmeni.gettext()); catch(illegalargumentexception ex) { System.out.println(ex.toString()); try { zm.setpocethodin(integer.valueof(tppocetdeti.gettext())); catch(illegalargumentexception ex) { System.out.println(ex.toString());
13 Odchycení výjimky a její následující vypsání ukazuje následující obrázek. K výpisu je použito terminálové okno BlueJ. Obr 4. Jak je z obrázku patrné, byla vytvořena instance třídy Zamestnanec, v jejich instančních proměnných jmeno a prijmeni je uložena implicitní hodnota, zadávané hodnoty nevyhovovali požadavkům, nebyly uloženy a byly tudíž vyvolány příslušné výjimky. Pokud bychom požadovali, aby instance třídy v případě zadání špatných parametrů vůbec nebyla vytvořena, museli bychom provádět kontrolu parametrů již v konstruktoru. Z toho vyplývá nutnost použití konstruktoru z parametry. public Zamestnanec(String jmeno, String prijmeni, int pocethodin) { if (!(jmeno.substring(0, 1).equals(jmeno.substring(0,1).toUpperCase()))) { throw new IllegalArgumentException("Jmeno zaměstnance nemůže začínat malým písmenem.");
14 Z uvedeného kódu je patrná jistá duplicita, vždyť podobné ověření se provádí v metodách setjmeno, Nebylo by vhodnější inicializovat instanční proměnné již v konstruktoru pomocí přístupových metod a tím se vyhnout duplicitnímu a složitému kódu? Konstruktor by pak vypadal následovně: public Zamestnanec(String jmeno, String prijmeni, int pocethodin) { setjmeno(jmeno); setprijmeni(prijmeni); setpocethodin(pocethodin); Nyní při vytváření instance třídy Zamestnanec může být vyhozena výjimka. Na tuto skutečnost musíme ještě reagovat drobnou úpravou v kódu třídy GUI. try { Zamestnanec zm = new Zamestnanec(jmeno, prijmeni, pocethodin); seznamzamestnancu.add(zm); catch (IllegalArgumentException ex) { System.out.println(ex.toString()); Nyní při zadání nekorektních parametrů nebude instance třídy Zamestnance vytvořena a bude vyhozena příslušná výjimka. Vše ukazuje následující obrázek:
15 Obr 5.
16 Co je již hotovo, co plánuji udělat Kompletně zpracovaná čtvrtá kapitola týkající se základních principů objektově orientovaného programování (35 stran). Dále je z velké části vytvořena druhá kapitola - chybějí pouze ukázkové příklady k podkapitolám abstraktní a vnitřní třídy. V třetí kapitole je ke každé podkapitole vytvořeno několik příkladů. Výběr demonstračního příkladu ještě zvažuji. Práci bych ještě rád doplnil o vhodné animace, které umožní lepší proniknutí do některých problémů. Zvláště vhodné se mi jeví u podkapitol týkajících se řídících konstrukcí, a to jak podmínkových příkazů tak u cyklů. V současné době vedu kroužek programování v jazyce Java na Střední škole podnikání. Tato aktivita mi umožňuje získat zpětnou vazbu o mé práci. Tyto informace bych rád použil jako vodítko pří výběru vhodnosti ukázkových projektů.
17 Seznam odborné literatury: David J. Barnes, Michael Kölling. Objects First With Java, second edition. Pearson Education Limited, Rudolf Pecinovský. Myslíme objektově v jazyku Java 5. Grada Publishing, a.s., 2004.
18 Závěr Vzhledem k tomu, že práce detailně popisuje uvedená témata a snaží se přímým způsobem seznámit čtenáře se základními dovednostmi při programování v jazyce Java, může být využíván pro potřeby studentů JU. A to jak pro studenty prezenčního studia k zopakování či ujasnění látky, tak i pro studenty kombinovaného studia. Z těchto potřeb je připravena i elektronická verze práce ve formě webové prezentace.
20. Projekt Domácí mediotéka
Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý
14.4.1. Typický prvek kolekce pro české řazení
14.4. Co všechno by měl mít typický prvek kolekce 177 Poznámka: Třídy BigInteger, BigDecimal a Date budou vysvětleny v částech [15./183, [16./185 a [18.1./204. 14.4.1. Typický prvek kolekce pro české řazení
Principy objektově orientovaného programování
Principy objektově orientovaného programování Třídy a objekty doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz C E T
Java - výjimky. private void vstup() throws IOException {... }
Java - výjimky Tato kapitola ukazuje na několika příkladech práci s výjimkami v Javě. Klíčové pojmy: Výjimka, hierarchie výjimek, zachytávání výjimek, blok try-catch, tvorba vlastních výjimek, propagace
Objektově orientované programování
Objektově orientované programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 7 A0B36PR1 Programování 1 Jan Faigl, 2015 A0B36PR1 Přednáška 7: Objektově
KTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda
Anotace sady: Úvod do objektově orientovaného programování, VY_32_INOVACE_PRG_OOP_01 Autor: Blanka Sadovská Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Druh učebního materiálu:
Abstraktní třída a rozhraní
Abstraktní třída a rozhraní Někdy se může stát, zejména při psaní v hierarchické struktuře hodně nadřazených tříd, že tušíme, že bude ve zděděných třídách vhodné použít nějakou metodu. Tuto metodu ještě
Teoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.
1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými
PREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
11. Dědičnost. Dědičnost strana 103
Dědičnost strana 103 11. Dědičnost V této kapitole si vysvětlíme jeden ze základních pojmů objektově orientovaného programování dědičnost (inheritance). S ní souvisejí i následující témata: předek a potomek
Generické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
Java a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Jazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová
Struktura třídy, operátory, jednoduché algoritmy, junit 2. cvičení Alena Buchalcevová Cíle cvičení seznámit se s rozhraním (interface) v Javě seznámit se s testováním při vývoji (makety, JUnit) naučit
Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová
Programové konvence, dokumentace a ladění 2. přednáška Alena Buchalcevová Proč dodržovat programové konvence? velkou část životního cyklu softwaru tvoří údržba údržbu provádí většinou někdo jiný než autor
Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský rudolf@pecinovsky.cz
Vaše jistota na trhu IT Balíčky Rudolf Pecinovský rudolf@pecinovsky.cz Problémy velkých aplikací Rozsáhlé aplikace používají velké množství názvů objektů a jejich zpráv, které různé části programu sdílí
Návrhové vzory Design Patterns
Návrhové vzory Design Patterns doc. Ing. František Huňka, CSc. Ostravská univerzita PřF 1 Definice vzoru Každý vzor popisuje problém, který nastává opakovaně v našem prostředí, a potom popisuje podstatu
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
1. Téma 12 - Textové soubory a výjimky
1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu EU-OPVK-VT-III/2-ŠR-303 Druh didaktického materiálu DUM Autor RNDr. Václava Šrůtková Jazyk čeština
Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
Java - Kresba. 2/28/11 1/8 Java - kresba
Java - Kresba Základní entity a jejich kresba ve třídě Graphics nemůžeme nastavit linii, šířku a typ, z grafických atributů jí můžeme nastavit pouze barvu Linie (čára)... drawline(int x1, int y1, int x2,
Postřehová hra. Zadání projektu. 1 Moje cíle
Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek Postřehová hra ročníkový projekt Matouš Jokl, 1E květen 2014 Obsah 1 Moje cíle...1 2 Kód...2 1.Objekty a ArrayList...2 2.Jpanel
Obrázek 6.14: Prohlížec nápovedy
JavaHelp Základní popis systému JavaHelp Soucástí vetšiny interaktivních aplikací je nápoveda (help) aplikace v Jave nejsou výjimkou. Systém JavaHelp je napsaný v Jave a je urcený pro aplikace vytvárené
Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín
Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit
Gymnázium, Praha 6, Arabská 14. Loydova patnáctka. Dokumentace ročníkového projektu. Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1.
Gymnázium, Praha 6, Arabská 14 Loydova patnáctka Dokumentace ročníkového projektu Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1.E Jan Zaoral květen 2014 1. Úvod 1.1. Anotace Česky Cílem
Čipové karty Lekařská informatika
Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány
Zapouzdření. Tomáš Pitner, upravil Marek Šabo
Zapouzdření Tomáš Pitner, upravil Marek Šabo Co je zapouzdření Naprosto zásadní vlastnost objektového přístupu, možná nejzásadnější Jde o spojení dat a práce s nimi do jednoho celku - objektu Data jsou
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
OOPR_05. Případové studie
OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní
Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
Soubor jako posloupnost bytů
Soubory Soubor je množina údajů uložená ve vnější paměti počítače, obvykle na disku Pro soubor jsou typické tyto operace. otevření souboru čtení údaje zápis údaje uzavření souboru Přístup k údajům (čtení
Java - řazení objektů
Java - řazení objektů Kapitola seznamuje se základními principy řazení objektů Klíčové pojmy: Přirozené řazení, absolutní řazení, ideální porovnávatelná třída ŘAZENÍ OBJEKTŮ U objektů není příliš jasné,
Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
Programování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
Jazyk C# a platforma.net
Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 2. část BI-DNP Evropský sociální fond
Programovací jazyk Java
1 z 8 Programovací jazyk Java Enumerace (výčty) Složitější definice výčtového typu Konstanty anonymních typů Výčtový typ a datové struktury Java packaging JAR archivy CLASSPATH Apache Ant 10. přednáška
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
Aplikace s grafickým uživatelským rozhraním
Aplikace s grafickým uživatelským rozhraním doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz 1 Typy aplikací Konzolová
Iterator & for cyklus
Iterator & for cyklus for (Object o : foo) funguje pokud je foo pole nebo je foo iterovatelné jako to zařídit? implementovat interface java.lang.iterable Iterable má jednu metodu java.util.iterator iterator()
Programování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
Generické typy. Podrobněji: The Java Language Specification ( Third Edition ) , 18
Generické typy jsou třídy či interfejsy deklarující tzv. typové parametry jimiž: - systematizují typovou kontrolu kompilátorem, - vyjadřují jasněji smysl, zlepšují čitelnost a robustnost programu, - ulehčují
IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33
Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt
public class Karel { private int position; public boolean issmiling; public int getposition() { return position;
Objekty, třídy a hierarchie tříd Interface a abstraktní třídy Dědičnost Message passing Class diagramy a příklady systémů modelovaných pomocí OOP Volba správného přístupu Rozdíl mezi asociací, agregací
Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci
Základy programovaní 4 (Java) Stream API Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/ZP4JV 5. listopad, 2014 1 / 10 Stream API Java 8 nový přístup k práci s kolekcemi
Objektově orientované programování 1 XOBO1. Autor: Doc. Ing. František Huňka, CSc.
Objektově orientované programování 1 XOBO1 Autor: Doc. Ing. František Huňka, CSc. 1 Seznam kapitol 1 Základní pojmy...3 1.1 Úvod do tříd a objektů...3 1.2 Vývojové prostředí...7 1.3 Jednotný modelovací
Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);
Programovací jazyk PHP doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Třídy a objekty Výjimky Webové aplikace
Vytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
Z. Kotala, P. Toman: Java ( Obsah )
Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu
Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní
boolean hasnext() Object next() void remove() Kolekce
11. Kontejnery Kontejnery Kontejnery jako základní dynamické struktury v Javě Kolekce, iterátory (Collection, Iterator) Seznamy (rozhraní List, třídy ArrayList, LinkedList) Množiny (rozhraní Set, třída
17. Projekt Trojúhelníky
Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským
Reflexe RTTI Runtime Type Identification
Vaše jistota na trhu IT Reflexe RTTI Runtime Type Identification Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Vaše jistota na trhu IT Opakování Shrnutí či téma Co je to reflexe/rtti Termínem Reflexe označujeme
Dědičnost (inheritance)
Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)
Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.
Základy programování 4 - C# - 8. cvičení Radek Janoštík Univerzita Palackého v Olomouci 3.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 1 / 10 Reakce na úkoly
TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);
TŘÍDY POKRAČOVÁNÍ Události pokračování public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); class Bod private int x; private int y; public event ZmenaSouradnicEventHandler ZmenaSouradnic;
Delphi podstata, koncepce a metody MDI aplikace
Delphi podstata, koncepce a metody MDI aplikace Bc. Tomáš Selucký, Ústav statistiky a operačního výzkumu, Provozně ekonomická fakulta, Mendelova zemědělská a lesnická univerzita v Brně, selucky@selucky.com
Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy
Základní pojmy Stromy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Graf uzly hrany orientované / neorientované Souvislý
Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce
Vektor a Matice Základní pojmy Matice(řádky, sloupce) Matice(4,6) sloupce řádky (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (4,1) (4,2) (4,3)
George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu
A Tutorial Advances in query languages for similarity-based databases George J. Klir Petr Krajča State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu Palacky University,
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25
Seminář Java Výjimky Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Výjimky 1/ 25 Výjimky Co a k čemu jsou výjimky výjimka je mechanizmus umožňující psát robustní, spolehlivé
typová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
Regulární výrazy. Vzory
Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO
Přehled probírané látky
OOPR_04 1 Přehled probírané látky asociace (relace) mezi třídami popis množiny spojení mezi objekty skládání objektů - upřesněný typ asociace, vazba mezi objekty kompozice objektů (velmi pevná vazba mezi
Jazyk C# (seminář 3)
Jazyk C# (seminář 3) Pavel Procházka KMI October 8, 2014 Motivace Největší využití v programování okenních aplikací a GUI knihoven. Data reprezentujeme pomocí objektů (tříd), máme tedy ucelený pohled na
GUI v Javě a událostmi řízené programování
GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek,
GUI v Javě a událostmi řízené programování
GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek,
Java GUI události. Událostmi řízené programování. Zpracování = obsluha událostí
Java GUI události Cílem kapitoly je přiblížit hlavní princip událostmi řízeného programování a ukázat na příkladu způsob řešení pro konkrétní případ. Soubor obsahuje také tabulku s přehledem nejčastěji
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
Třídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické
Třídy, polymorfismus A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Polymorfizmus ~ vícetvarost Polymorfizmus základní vlastnost objektového přístupu základní princip polymorfismu:
9. přednáška - třídy, objekty
třída String a její použití kolekce, typované kolekce 9. přednáška - třídy, objekty Algoritmizace (Y36ALG), Šumperk - 9. přednáška 1 Třída String Objekty knihovní třídy String jsou řetězy znaků Od ostatních
Algoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
GUI v Javě a událostmi řízené programování
GUI v Javě a událostmi řízené programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR2 Programování 2 Jan Faigl, 2016 A0B36PR2 Přednáška
Úvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
Pokročilé schopnosti OOP
Kapitola 7 Pokročilé schopnosti OOP V kapitole 6 jste absolvovali základy objektově orientovaného programování v PHP. V této kapitole budeme na těchto základech stavět. Seznámíte se s několika vyspělejšími
JAVA Unit testing Java, zimní semestr
JAVA Unit testing Úvod unit testing testování malý jednotek funkčnosti jednotka nezávislá na ostatních testování zcela oddělené vytvářejí se pomocné objekty pro testování kontext typicky v OO jazycích
7. Dynamické datové struktury
7. Dynamické datové struktury Java poskytuje několik možností pro uložení většího množství dat (tj. objektů či primitivních datových typů) v paměti. S nejjednodušší z nich, s polem, jsme se již seznámili.
Výjimky. v C# a Javě
Výjimky v C# a Javě Výjimky v C# Výjimky poskytují v C# způsob, jak reagovat na nečekané události. Uživatel např. zadá místo čísla text nebo soubor, který chceme otevřít, je využíván jiným procesem. To
Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01
Anotace sady: Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Autor: Blanka Sadovská Klíčová slova: Algoritmus, proměnná, diagram Stupeň a typ vzdělávání: gymnaziální vzdělávání, 3. ročník
Třídy a objekty -příklady
Třídy a objekty -příklady doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Příklad 1 Kvadratická rovnice static void
IRAE 07/08 Přednáška č. 7. Začátek (head)
Fronta (Queue) FIFO First In First Out (první dovnitř první ven) Vložení položky (Enqueue) Vyjmutí položky (Dequeue) Přidávání prvků Konec (Tail) Začátek (head) na jedné straně (konec) Odebírání prvků
Technologie JavaBeans
Technologie JavaBeans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Historie Komponentový model Typy komponent
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
IB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
Java a Caché IV: Manipulace s objekty
1 z 6 11.1.2007 11:13 přihlašovací jméno heslo Registrace Přihlásit články odkazy aktuality CZJUG konference o portálu přidejte se o nás Vyhledávání Text: najdi Oborový filtr J2ME J2SE J2EE Enterprise
Události. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické
Události A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Zpracování událostí - obsah 1. Připomenutí GUI 2. Co to je událost 3. Koncepce zpracování událostí 4. Zpracování vlastností
Datové struktury. alg12 1
Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou