Kurzy, Podrobnější informace najdete na Dotazy a přihlášky můžete posílat na kurzy@amaio.cz

Rozměr: px
Začít zobrazení ze stránky:

Download "Kurzy, Podrobnější informace najdete na www.amaio.cz Dotazy a přihlášky můžete posílat na kurzy@amaio.cz"

Transkript

1

2

3

4 O autorovi Rudolf Pecinovský patří ke špičkovým odborníkům na výuku programování. Publikoval již 39 učebnic, které byly přeloženy do pěti jazyků, a nepřeberné množství článků a příspěvků na odborných konferencích. Je autorem metodiky výuky programování Karel, navazující metodiky Baltík a moderní metodiky výuky objektově orientovaného programování známé pod anglickým názvem Design Patterns First. Učí programování na VŠE a současně pracuje jako Senior EDU Expert ve firmě ICZ a.s., kde má na starosti doškolování profesionálních programátorů. O knize Tato kniha je druhým vydáním populární učebnice programování, která je na našem trhu zcela ojedinělá. Na rozdíl od ostatních učebnic se totiž neomezuje na výuku syntaxe jazyka a práce s knihovnami, ale učí čtenáře doopravdy programovat. Učí jej, jak má při programování myslet. Kniha je sice primárně určena začátečníkům, ale ohlasy na první vydání ukázaly, že v ní najdou poučení i zkušení programátoři. Většina učebnic a kurzů programování totiž vyvolává falešnou představu, že objektově programovat znamená používat třídy a dědičnost. Tato kniha je první, která ukazuje, že objektově orientované programování přináší především jiný způsob myšlení. Jak výstižně napsal jeden čtenář: Myslel jsem si, že nejsem žádné programátorské ucho. Když jsem ale přečetl vaši učebnici, otevřel jsem oči a hubu. Konečně jsem pochopil věci, které mi ostatní učebnice nedokázaly vysvětlit. Kniha vznikla na základě dlouholetých autorových zkušeností se školením profesionálních programátorů, výukou programování na univerzitě i vedením žákovských programátorských kroužků. Autor v ní uvádí čtenáře krok za krokem do tajů objektově orientovaného programování a ukazuje mu, jak možnosti této moderní technologie co nejlépe využít a kde si dát naopak pozor na její úskalí. Výklad je postaven na příkladech, které autor spolu s čtením postupně řeší a přitom čtenáře učí nejenom základním programátorským návykům a dovednostem, ale předvede mu i nejrůznější užitečné triky, z nichž mnohé nikde jinde vysvětlené nenajdete. Současně upozorňuje na nejčastější začátečnické chyby, které před svými čtenáři ostatní učebnice většinou tají. Navíc probírá i řadu témat (např. návrhové vzory), které patří do základní výbavy objektového programátora, přestože jsou většinou probírána až v pokročilých nebo dokonce nadstavbových kurzech.

5 Kurzy, které vede Rudolf Pecinovský, patří k nejkvalitnějším v České republice a zaručují dokonalé pochopení problematiky a okamžitou využitelnost získaných vědomostí v praxi. Je v nich optimálně sklouben výklad principů s praktickými cvičeními a nácvikem samostatného řešení praktických úloh. Chcete-li se naučit opravdu dobře programovat, přihlaste se do některého z následujících kurzů: Úvod do objektově orientovaného programování pro neprogramátory je určen pro ty, kteří se nehodlají živit přímo programováním, ale musejí s programátory velmi často jednat a potřebují se v dané oblasti trochu vyznat. Navštěvují jej zejména analytici, vedoucí projektových týmů a manažeři. Úvod do objektově orientovaného programování v Javě pro začínající programátory je určen pro ty, kteří s programováním teprve začínají a nemají žádné (a nebo jen minimální) předchozí zkušenosti s programováním. Úvod do objektově orientovaného programování v Javě pro strukturované programátory je určen pro ty, kteří doposud programovali v některém strukturovaném jazyce, a nebo programovali v objektovém jazyce, ale cítí, že jim objektově orientovaný způsob myšlení není vlastní. Kurz navštěvují především programátoři, kteří začali programovat v PHP nebo Delphi a přecházejí na Javu. Neméně početnou skupinou jsou programátoři v Javě, kteří se v předchozích kurzech sice naučili syntaxi jazyka, ale cítí, že by potřebovali zlepšit objektovou orientovanost svých programů. Kurz programování v Javě pro pokročilé je určen pro posluchače se základními zkušenostmi s objektovým programováním a Javou. Prohlubuje jejich znalosti a soustředí se na oblasti, které základní kurzy většinou přeskakují nebo je probírají jen okrajově. Posluchači se naučí pracovat s mnoha užitečnými třídami ze standardní knihovny a osvojí si řadu pokročilých technologií. Kurz návrhových vzorů je určen pro programátory se základními znalostmi objektového programování. Seznámí se zde s 33 návrhovými vzory a naučí se je využívat ve svých programech. Vedle těchto standardních kurzů nabízíme i další odborné akce: Přednášky a série přednášek na domluvená témata pro větší skupiny posluchačů. Tyto přednášky mohou mít i podobu klasického výukového kurzu. Konzultace nad konkrétními problémy zákazníků. Podrobnější informace najdete na Dotazy a přihlášky můžete posílat na kurzy@amaio.cz

6 Rudolf Pecinovský Myslíme objektově v jazyku Java kompletní učebnice pro začátečníky, 2., aktualizované a rozšířené vydání Copyright Grada Publishing a.s., 2009 V knize použité názvy mohou být ochrannými známkami nebo registrovanými ochrannými známkami příslušných vlastníků. Vydala Grada Publishing a.s. U Průhonu 22, Praha 7 jako svoji publikaci Odborní lektoři Prof. RNDr. PhDr. Antonín Slabý, CSc., Doc. Ing. Vojtěch Merunka, Ph.D., Ing. Alena Buchalcevová, Ph.D. Odpovědná redaktorka Jaroslava Palasová Návrh vnitřního layoutu Rudolf Pecinovský Zlom Jana Davídková, Rudolf Pecinovský Počet stran 576 První vydání, Praha 2009 Vytiskly Tiskárny Havlíčkův Brod, a.s. Husova Ulice 1881, Havlíčkův Brod ISBN

7 Mé ženě Jarušce a dětem Štěpánce, Pavlínce, Ivance a Michalovi

8 St ruč ný o bsa h 8 Myslíme objektově v jazyku Java Stručný obsah Poděkování...21 Předmluva k prvnímu vydání...22 Úvod...23 Část 1: Zapouzdření Seznamujeme se s nástroji Třídy a objekty v interaktivním režimu Vytváříme vlastní třídu Přidáváme atributy a metody Dotváříme vlastní třídu Návrhové vzory Část 2: Více tváří Rozhraní Budete si to přát zabalit? Co takhle něco zdědit? Dědit mohou i třídy Knihovny Program ve výjimečné situaci Část 3: Učíme program přemýšlet Program začíná přemýšlet Ještě jednu rundu, prosím Interní datové typy Kontejnery nejsou jen na odpadky Statické kontejnery pole Závěrečný projekt a kudy dál Rejstřík...565

9 Po dr o bn ý obs a h Podrobný obsah 9 Podrobný obsah Poděkování...21 Předmluva k prvnímu vydání...22 Úvod...23 Komu je kniha určena...23 Co se naučíte...23 Styl výuky...24 Programovací jazyk...25 Uspořádání...26 Čeština...26 Proč je kniha tlustá...27 Potřebné vybavení...27 Doporučená konfigurace...27 Sada JDK (Java Development Kit)...28 Vývojové prostředí...28 Konfigurační soubor pro prostředí BlueJ...29 Doprovodné programy...29 Doprovodné animace...29 Použité konvence...29 Odbočka...31 Část 1: Zapouzdření Seznamujeme se s nástroji Trochu historie První počítače...34 Co je to program...35 Program musí být především spolehlivý Objektově orientované programování OOP Vývoj metodik programování...36 Principy OOP Překladače, interprety, platformy Operační systém a platforma...37 Programovací jazyky Java a její zvláštnosti Klíčové vlastnosti Javy...40 Objektově orientovaná Jednoduchá...40 Multiplatformní...40 Java je jazyk i platforma...40 Vývojářská sada Vývojové prostředí BlueJ Projekty a BlueJ Umístění projektů na disku...42 Windows a substituované disky...43 Vyhledání a otevření projektu...44

10 10 Myslíme objektově v jazyku Java 1.7 Diagram tříd...45 Manipulace s třídami v diagramu Shrnutí co jsme se naučili Třídy a objekty v interaktivním režimu Nejprve trocha teorie...51 Třídy a jejich instance Zprávy Metody Analogie Třídy a jejich instance...53 Vytváříme svou první instanci Pravidla pro tvorbu identifikátorů v jazyce Java Vytváříme svou první instanci pokračování Posíláme instanci zprávu Vytváříme další instance Rušení instancí a správa paměti Restartování virtuálního stroje Instance versus odkaz Zprávy žádající o hodnotu...63 Datové typy Primitivní datové typy Objektové datové typy Vracení hodnot primitivních typů Vracení hodnot objektových typů Parametry a jejich typy...68 Vyvolání konstruktoru s parametry Parametry objektových typů Posílání zpráv s parametry Metody třídy Výlet do nitra instancí...75 Atributy instancí Atributy třídy statické atributy Přímé zadávání hodnot parametrů objektových typů...79 Veřejné atributy Odkazy vrácené po zaslání zprávy Shrnutí co jsme se naučili Vytváříme vlastní třídu První vlastní třída Zdrojový kód třídy...87 Prázdná třída Bílé znaky a uspořádání programu Soubory projektu Odstranění třídy Implicitní konstruktor Přejmenování třídy Ladění...98 Syntaktické chyby Běhové chyby Logické (sémantické) chyby Konstruktor s parametry Použití skrytého parametru this Přetěžování Testování TDD vývoj řízený testy Zprovoznění nástrojů pro automatizaci testů

11 Podrobný obsah 11 Testovací třída Přípravek Úprava obsahu přípravku Shrnutí co jsme se v kapitole naučili Zdrojový kód Ladění Konstruktory a metody Přidáváme atributy a metody Deklarace atributů Modifikátory přístupu Vylepšujeme třídu Strom Možné důsledky zveřejnění atributů Definujeme vlastní metodu Test vytvořených metod Reakce na chybu v testu Nejprve testy, pak program? Někdy jsou věci složitější Použití metod vracejících hodnotu Definice metod vracejících hodnotu Parametry a návratové hodnoty objektových typů Doplnění projektu o třídu odjinud Přístupové metody Atributy versus vlastnosti Konvence pro názvy přístupových metod Kvalifikace a klíčové slovo this Kvalifikace metod Kvalifikace atributů Atributy a metody třídy (statické atributy a metody) Atributy třídy Metody třídy Čtení chybových hlášení Lokální proměnné Konstanty a literály Konstanty objektových typů Správná podoba literálů boolean int double String null Zapouzdření a skrývání implementace Rozhraní versus implementace Signatura kontrakt Komentáře a dokumentace Proč psát srozumitelné programy Tři druhy komentářů Zakomentování a odkomentování části programu Pomocné značky pro tvorbu dokumentace Okomentování třídy Strom Uspořádání jednotlivých prvků v těle třídy Prázdná standardní třída BlueJ a komentářová nápověda Automaticky generovaná dokumentace Dokumentace celého projektu Třída Object

12 12 Myslíme objektově v jazyku Java 4.13 Metoda tostring() Sčítání řetězců Jak definovat metodu tostring() Závěrečný příklad UFO Předběžné poznámky Stručný přehled Třída Dispečer Jednodušší varianta Varianta ovládaná z klávesnice Třída UFO Atributy Konstruktor Metoda setrychlost(int,int) Metody getx(), gety(), getxrychlost(), getyrychlost(), getxtah(), getytah() Metoda nakresli() Metoda popojeď(int) Metody vpravo(), vlevo(), vzhůru(), dolů(), vypnimotory() Metoda tostring() Třída UFO_ Třída UFOTest Vytvoření samostatné aplikace Prohlížení obsahu JAR-souborů Třída spouštějící aplikaci Vytvoření souboru JAR s aplikací Stěhování projektu mezi platformami Problémy s kódováním znaků Shrnutí co jsme se v kapitole naučili Zdrojový kód Atributy a lokální proměnné Dokumentace Aplikace Dotváříme vlastní třídu Jednoduché vstupy a výstupy Textové řetězce Rozdíl mezi prázdným řetězcem a null Čísla Podrobnosti o operátorech Binární aritmetické operátory + * / % Sčítání, odčítání, násobení Slučování řetězců Dělení / Zbytek po dělení (dělení modulo) % Unární operátory Kulaté závorky () Přiřazovací operátor = Složené přiřazovací operátory +=, =, *=, /=, %= Operátor přetypování (typ) Univerzální přetypování na String Počítáme instance Inkrementační a dekrementační operátory Způsoby předávání hodnot Jiný způsob inicializace rodného čísla Standardní výstupy Standardní chybový výstup V útrobách testovací třídy Přípravek

13 Podrobný obsah 13 Automaticky generované testy Vlastní testy Úklid Metody assertequals a asserttrue Test testů Debugger a práce s ním Krokování programu Okno debuggeru Vlákna Atributy třídy Atributy instancí Lokální proměnné Pořadí volání zásobník návratových adres Krokování konstruktoru Atributy a proměnné objektových typů Už nezastavuj ruším zarážky Předčasný konec programu Pozastavení běžícího programu Hodnotové a odkazové objektové typy Odkazové datové typy Hodnotové typy Program demonstrující rozdíl Hodnotové typy podruhé Projekt Zlomky Metoda equals(object) Operátor porovnání == Operátor logické konjunkce && Operátor instanceof Definice equals(object) pro Zlomek Shrnutí co jsme se naučili Návrhové vzory Knihovní třída (Utility) Přepravka (Messenger) Tovární metoda (Factory method) Jedináček (Singleton) Výčtové typy Návrhový vzor Prázdný objekt (Null Object) Shrnutí co jsme se naučili Část 2: Více tváří Rozhraní Návrhový vzor Prostředník (Mediator) Kreslíme jinak Syntaxe rozhraní Instance rozhraní Nový projekt Práce s novým plátnem Událostmi řízené programování Implementace rozhraní Implementace rozhraní v diagramu tříd Odvolání implementace rozhraní Implementace rozhraní ve zdrojovém kódu Úprava zdrojového kódu třídy Strom Třída musí jít přeložit...256

14 14 Myslíme objektově v jazyku Java Testování Opomenuté testy Efektivita vykreslování Závěrečné úpravy Uložení odkazu na správce plátna do atributu třídy Odstranění statického atributu krok Úpravy posunových metod Zefektivnění přesunu Vnořený blok Implementace několika rozhraní Návrhový vzor Služebník (Servant) Proč zavádíme rozhraní Implementace Aplikace na náš projekt Závěrečný test Refaktorování Ukázka krok: Vytvoření testu krok: Doplnění prázdných verzí testovaných metod krok: Definice nových atributů krok: Kopírování těla konstruktoru do těla metody krok: Dočasné odkonstantnění některých atributů krok: Definice potřebných lokálních proměnných krok: Odstranění tvorby nových instancí koruny a kmene krok: Vrácení koruny a kmene mezi konstanty krok: Vyvolání metody setrozměr(int,int) v konstruktoru krok: Odstranění zdvojeného kódu z konstruktoru krok: Doplnění metody setrozměr(rozměr) krok: Doplnění metody setoblast(oblast) Projekt Výtah Analýza problému Okolí Konstruktory Potřebné metody Implementace Implementovaná rozhraní Atributy Postup při návrhu metod Metoda dopatra(int) Metoda přijeďk(iposuvný) Metoda nástup(iposuvný) Metody výstupvpravo() a výstupvlevo() Test převozu pasažéra Metody odvezvpravo(iposuvný,int) a odvezvlevo(iposuvný,int) Shrnutí co jsme se naučili Budete si to přát zabalit? Velké programy a jejich problémy Balíčky Podbalíčky Uspořádání podbalíčků s programy k dosavadní části knihy Názvy tříd Balíčky a BlueJ Příprava stromu balíčků pro BlueJ ve správci souborů Příprava stromu balíčků v BlueJ Vytvoření struktury balíčků pro tuto kapitolu Putování stromem balíčků Odstraňování balíčků

15 Podrobný obsah 15 Zavírání a otevírání projektů Naplňujeme balíčky Automatické vložení příkazu package Balíčky a příkaz import Import celého balíčku Import a podbalíčky Balíček java.lang Změna balíčku Názvy balíčků Příkazový panel Nevýhody koncepce balíčků v BlueJ Zobrazení příkazového panelu Použití příkazového panelu Opakované používání příkazů Přístupová práva v rámci balíčku Neveřejné třídy Tvorba vlastních aplikací Statický import Shrnutí co jsme se naučili Co takhle něco zdědit? Co to je, když rozhraní dědí? Jak to zařídit Duplicitně deklarovaná implementace Společný potomek několika rozhraní Třída Oblast a rozhraní IHýbací Návrhový vzor Stav (State) Projekt Šipky Shrnutí Návrhový vzor Zástupce (Proxy) Projekt Kabina Předpřipravené třídy Třída rup.česky.tvary.multipřesouvač Rozhraní rup.česky.tvary.imultiposuvný Rozhraní doprava.izastávka Třída doprava.linka Úloha: třída doprava.kabina Shrnutí co jsme se naučili Dědit mohou i třídy Podtřídy a nadtřídy Specializace Zobecnění Realizace v OOP Univerzální (pra)rodič Object Experimenty s dědičností Atributy a bezparametrické konstruktory tříd v projektu Hierarchie dědičnosti Podobjekt rodičovské třídy Explicitní volání konstruktoru předka Dosažitelnost parametru this Postup budování instance Chráněné atributy modifikátor přístupu protected Dědičnost a metody tříd Metody instancí, jejich dědění a překrývání Nové metody Nepřekryté zděděné metody...339

16 16 Myslíme objektově v jazyku Java Překryté zděděné metody Test chování překrývajících a překrytých metod Porovnání Podobjekt Soukromá metoda Veřejná metoda Instance vnučka Vyvolání překryté verze metody Vytváříme dceřinou třídu Jednoduchá dceřiná třída Konstruktory potomka Složitější dceřiná třída Definice konstruktorů Metoda kresli(kreslítko) Metoda setpozice(int,int) Jak přesvědčit objekt, aby se pokaždé choval jinak Samostatná úloha: Terč Vytváříme rodičovskou třídu Společný rodič Posuvný Příprava Konstantní atributy třídy Proměnné atributy třídy Konstantní atributy instancí Proměnné atributy instancí Konstruktory Metody instancí Třídy jako objekty class-objekt třídy Doladění dceřiných tříd Elipsa, Obdélník, Trojúhelník Čára Text Strom Dodatečné rozšíření rodičovské třídy Společný rodič Hýbací Abstraktní metody a třídy Neimplementovaná metoda implementovaného rozhraní Zděděná a neimplementovaná abstraktní metoda Přidání metody zobraz() Nově deklarovaná abstraktní metoda Abstraktní třída bez abstraktních metod Nová schopnost přizpůsobivost Návrhový vzor Stav podruhé Projekt Šipka Co je na dědičnosti špatné Třída ZpětnáKabina Omezení kladená na konstruktory Konečné třídy Poznámka o dobrých mravech Konečné metody ZpětnáKabina podruhé Tovární metoda podruhé Jak něco udělat před spuštěním rodičovského konstruktoru Využití tovární metody Kdy (ne)použít dědičnost Potomci, kteří nejsou speciálním případem rodiče Kdy jsme použili dědičnost místo správného skládání Potomci, kteří jsou příliš speciální

17 Podrobný obsah 17 Kdy dát přednost skládání a kdy dědičnosti Shrnutí co jsme se naučili Knihovny Zbylé primitivní datové typy long short byte float char Primitivní a obalové datové typy Třída System Formátovaný výstup Národní prostředí Ukázka Základní matematické funkce Pracujeme s náhodou Ukončení aplikace Třída String Definice vlastní knihovny a její začlenění do BlueJ Vytvoření JAR-souboru s knihovnou Přidání knihovny do BlueJ Shrnutí co jsme se naučili Program ve výjimečné situaci Nejdůležitější výjimky Vyhození výjimky Výjimky a dostupný kód Co výjimky umí getmessage() tostring() printstacktrace() printstacktrace( PrintStream ) Zachycení vyhozené výjimky Analýza rekurzivní metody Několik současně odchytávaných výjimek Společný úklid Testování správného vyhození výjimky Hierarchie dědičnosti výjimek Definice vlastních výjimek Kontrolované výjimky Převedení kontrolované výjimky na nekontrolovanou Shrnutí co jsme se naučili Část 3: Učíme program přemýšlet Program začíná přemýšlet Ternární operátor?: Jednoduchý podmíněný příkaz Vyhození výjimky Blok příkazů (složený příkaz) Podmínky a jejich skládání Porovnávací operátory Logické výrazy Použití v programu Návrhový vzor Adaptér (Adapter)

18 18 * Myslíme objektově v jazyku Java 13.6 Ošetření klávesnice Návrhový vzor Pozorovatel (Posluchač) potřetí Možné události klávesnice Co prozradí událost java.awt.event.keyevent Střelba Třída Střela Třída Dělo Statický konstruktor Vylepšené dělo Rychlost ošetření klávesnice Vnořené podmíněné příkazy Výběr ze dvou možností Kaskáda možností Přepínač Sestřelování letadel Přepínač nad výčtovým typem Ještě jednou metoda equals(object) Překrytí metody equals(object) Shrnutí co jsme se naučili Ještě jednu rundu, prosím Cykly Jak máme rychlý počítač cyklus s koncovou podmínkou Jeden test nestačí cyklus s počáteční podmínkou Cyklus s parametrem Nekonečný cyklus Vnořování cyklů Cyklus s podmínkou uprostřed Příkaz break s návěštím Cyklus s prázdným tělem Skákající balonek Zadání Příprava testu Předběžné úvahy, definice konstruktorů Koncepce simulace pádu Dotažení simulace pádu Metody přemístina(int,int) a spadni() Balon se odráží Zmenšování odrazů Jak dělat několik věcí najednou Vlákna Spuštění pádu v samostatném vlákně Čekání na ukončení vlákna Opuštění více bloků současně Shrnutí co jsme se naučili Interní datové typy Přehled Terminologie Společné charakteristiky Použití Globální typy typové členy vnořené a vnitřní Vnořené datové typy Adaptér vnořený do svého rozhraní Vnitřní třídy Balonek s vnitřní třídou

19 Podrobný obsah Lokální třídy Pojmenované lokální třídy Anonymní třídy Balonek s anonymní třídou Shrnutí co jsme se naučili Kontejnery nejsou jen na odpadky Co je to kontejner Kolekce (Collection) Množina (Set) Seznam (List) Mapa (Map), Slovník (Dictionary) Koncepce kontejnerů ve standardní knihovně Další kontejnery Zásobník (Stack) Fronta (Queue) Strom (Tree) Graf Parametrizované datové typy Definice parametrizovaných typů Použití parametrizovaných typů Jak chápat definice typů a jejich metod Žolíky Práce s kontejnery ve standardní knihovně Deklarujte typy co nejobecněji Rozhraní java.util.collection<e> Pracujeme s množinami Rozhraní java.util.set<e> Třída java.util.linkedhashset<e> Brownův pohyb molekul Konstrukce molekuly Náhodné rozmístění molekul Pohyb molekul a jejich srážky Pravidelné spuštění úloh pomocí instance třídy java.util.timer Animátor Animátor jako soukromá vnořená třída Návrhový vzor Iterátor (Iterator) Princip Použití iterátorů v Javě Rozhraní java.util.iterátor<e> Molekuly s vývěvou Pracujeme se seznamy Rozhraní java.util.list<e> Třídy java.util.arraylist<e> a java.util.linkedlist<e> Návrhový vzor Pozorovatel Mnohotvar Základní koncepce a první testy Dovedení programu k úspěšnému vykonání testů Metoda nakresli(kreslítko) Metoda přidej(ihýbací) Přidání hýbacích vlastností Metoda setpozice(int,int) Metoda setrozměr(int,int) Soukromá přepravka Zavedení vrstev práce se seznamy Třída java.util.listiterator<e> Primitivní a obalové datové typy

20 20 Myslíme objektově v jazyku Java Pracujeme s mapami Rozhraní java.util.map<k,h> Rozhraní java.util.map.entry<k,h> Mapy v balíčku rup.česky.tvary Třída Směr Třída Barva Hodnotové typy a metoda hashcode() Hešové tabulky Pravidla pro ukládání Pravidla pro vyhledávání Vytváření hešových tabulek Metoda hashcode() Ještě jednou hodnotové typy Shrnutí co jsme se naučili Statické kontejnery pole Pole jako kontejner Pole odkazů na objekty Pole a BlueJ Pole hodnot primitivních typů Hlídání mezí polí Inicializace polí v deklaraci Inicializace vytvářeného pole Neinicializovaná pole objektových typů Vypsání čísla slovy Vícerozměrná pole Obdélníková pole Neobdélníková pole Inicializace vícerozměrného pole Pascalův trojúhelník Třídy StringBuilder a StringBuffer Metoda main(string[]) Metody s proměnlivým počtem parametrů Shrnutí co jsme se naučili Závěrečný projekt a kudy dál Závěrečný projekt: Displej Zadání Analýza Displej Číslice Segment Zpět u číslic Dotahujeme segmenty Dotahujeme číslice Dotahujeme displej Závěr Kudy dál Rejstřík...565

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz O autorovi Rudolf Pecinovský patří ke špičkovým odborníkům na výuku programování. Publikoval již 39 učebnic, které byly přeloženy do pěti jazyků,

Více

Kurzy, Podrobnější informace najdete na Dotazy a přihlášky můžete posílat na

Kurzy, Podrobnější informace najdete na  Dotazy a přihlášky můžete posílat na O autorovi Rudolf Pecinovský patří ke špičkovým odborníkům na výuku programování. Publikoval již 39 učebnic, které byly přeloženy do pěti jazyků, a nepřeberné množství článků a příspěvků na odborných konferencích.

Více

knihovna programátora

knihovna programátora knihovna programátora Učebnice pro ty, kteří nechtějí zůstat obyčejnými kodéry, ale chtějí se stát špičkovými architekty Postupuje podle metodiky Architecture First Soustředí se na návrh programů a osvojení

Více

knihovna programátora

knihovna programátora knihovna programátora Učebnice pro ty, kteří nechtějí zůstat obyčejnými kodéry, ale chtějí se stát špičkovými architekty Postupuje podle metodiky Architecture First Soustředí se na návrh programů a osvojení

Více

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20 Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................

Více

ČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33

ČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33 Stručný obsah Část 1: Zahřívací kolo Kapitola 1 Co je a k čemu je návrhový vzor 33 Kapitola 2 Zásady objektově orientovaného programování 39 Kapitola 3 Co konstruktor neumí (Jednoduchá tovární metoda Simple

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Kurzy, Podrobnější informace najdete na Dotazy a přihlášky můžete posílat na

Kurzy, Podrobnější informace najdete na  Dotazy a přihlášky můžete posílat na O autorovi Rudolf Pecinovský patří ke špičkovým odborníkům na výuku programování. Publikoval již 39 učebnic, které byly přeloženy do pěti jazyků, a nepřeberné množství článků a příspěvků na odborných konferencích.

Více

OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů... 8-1 8.2 Standardně zavedené proudy... 8-1 8.

OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů... 8-1 8.2 Standardně zavedené proudy... 8-1 8. David MATOUŠEK OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PØÍKLADECH Praha 2011 David Matoušek Objektové programování v C++ v pøíkladech Lektoroval Ing. Bohumil Brtník, Ph.D. Bez pøedchozího písemného svolení nakladatelství

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

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í

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena

Více

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Vzdělávací oblast Informatika a informační a komunikační technologie pro vzdělávací obor Programování

Více

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

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

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013 Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521

Více

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

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í

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

knihovna programátora

knihovna programátora knihovna programátora Učebnice pro ty, kteří nechtějí zůstat obyčejnými kodéry, ale chtějí se stát špičkovými architekty Postupuje podle metodiky Architecture First Soustředí se na návrh programů a osvojení

Více

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Java/QE Akademie - Osnova

Java/QE Akademie - Osnova Java/QE Akademie - Osnova Lekce 1 1. Co je to Java? 1.1. Struktura Java kódu 2. Potřebné nástroje pro vývoj 2.1. JVM 2.2. JRE 2.3. JDK 3. Co je to proměnná a její zápis v Javě 3.1. Klasické proměnné 3.2.

Více

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 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í

Více

Kurzy, Podrobnější informace najdete na www.amaio.cz Dotazy a přihlášky můžete posílat na kurzy@amaio.cz

Kurzy, Podrobnější informace najdete na www.amaio.cz Dotazy a přihlášky můžete posílat na kurzy@amaio.cz O autorovi Rudolf Pecinovský patří ke špičkovým odborníkům na výuku programování. Publikoval již 39 učebnic, které byly přeloženy do pěti jazyků, a nepřeberné množství článků a příspěvků na odborných konferencích.

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

Myslíme objektově. v jazyku. Rudolf Pecinovský 2004. @Java_PO.doc, verze 0.33.197, uloženo: út 29.6.04 23:55 Strana 1 z 433

Myslíme objektově. v jazyku. Rudolf Pecinovský 2004. @Java_PO.doc, verze 0.33.197, uloženo: út 29.6.04 23:55 Strana 1 z 433 Myslíme objektově v jazyku Rudolf Pecinovský 2004 @Java_PO.doc, verze 0.33.197, uloženo: út 29.6.04 23:55 Strana 1 z 433 Stručný obsah Stručný obsah Stručný obsah...2 Podrobný obsah...4 Úvod...13 Část

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9 Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce českého

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

11 Diagram tříd, asociace, dědičnost, abstraktní třídy 11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,

Více

Seminář Java II p.1/43

Seminář Java II p.1/43 Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii

Více

Viditelnost (práva přístupu) Tomáš Pitner, upravil Marek Šabo

Viditelnost (práva přístupu) Tomáš Pitner, upravil Marek Šabo Viditelnost (práva přístupu) Tomáš Pitner, upravil Marek Šabo Viditelnost Přístup ke třídám i jejim prvkům lze (podobně jako např. v C++) regulovat. Přístupem se rozumí jakékoli použití dané třídy, prvku

Více

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování 1. Teoretické základy modelování na počítačích 1.1 Lambda-kalkul 1.1.1 Formální zápis, beta-redukce, alfa-konverze 1.1.2 Lambda-výraz jako data 1.1.3 Příklad alfa-konverze 1.1.4 Eta-redukce 1.2 Základy

Více

Algoritmizace a programování

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

Více

Úvodem... 9 Kapitola 1 Karetních

Úvodem... 9 Kapitola 1 Karetních Úvodem... 9 Základní znalosti o programovacích jazycích...10 Jazyk C# a platforma.net...10 Visual C# 2010 Express...11 Instalace platformy.net 4.0 a Visual C# 2010 Express...11 Zdrojový kód aplikací...12

Více

Generické programování

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 =

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue. 23. Třídy, generické třídy, instance, skládání, statické metody a proměnné. Zapouzdření, konstruktory, konzistence objektu, zpřístupnění vnitřní implementace, modifikátory public a private. Polymorfismus,

Více

Vyřešené teoretické otázky do OOP ( )

Vyřešené teoretické otázky do OOP ( ) Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13 Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Programování v C++ 2, 4. cvičení

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více

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í. 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;

Více

Programování v C++ 1, 6. cvičení

Programování v C++ 1, 6. cvičení Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

typová konverze typová inference

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

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Generátor kódu. a jeho uplatnění ve výuce programování. Rudolf PECINOVSKÝ rudolf@pecinovsky.cz

Generátor kódu. a jeho uplatnění ve výuce programování. Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Generátor kódu a jeho uplatnění ve výuce programování Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Trendy poslední doby Další a další státy si uvědomují nutnost zařazení výuky programování do učiva základních

Více

Josef Pecinovský PowerPoint 2007

Josef Pecinovský PowerPoint 2007 Josef Pecinovský PowerPoint 2007 Jak na PowerPoint 2007 v rekordním čase Josef Pecinovský Vydala Grada Publishing, a.s. U Průhonu 22, Praha 7 jako svou 3054. publikaci Odpovědný redaktor Karel Samohýl

Více

Ukázka knihy z internetového knihkupectví www.kosmas.cz

Ukázka knihy z internetového knihkupectví www.kosmas.cz Ukázka knihy z internetového knihkupectví www.kosmas.cz Počítáme v Excelu v rekordním čase Druhé, aktualizované vydání Vladimír Bříza Vydala Grada Publishing, a.s. U Průhonu 22, Praha 7 jako svou 2787.

Více

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

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íce

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

Datové typy strana 29

Datové typy strana 29 Datové typy strana 29 3. Datové typy Jak již bylo uvedeno, Java je přísně typový jazyk, proto je vždy nutno uvést datový typ datového atributu, formálního parametru metody, návratové hodnoty metody nebo

Více

O autorovi O odborném korektorovi Úvod 17 Vývoj jazyka Java Java SE 8 Struktura této knihy Předchozí zkušenosti s programováním nejsou potřebné

O autorovi O odborném korektorovi Úvod 17 Vývoj jazyka Java Java SE 8 Struktura této knihy Předchozí zkušenosti s programováním nejsou potřebné O autorovi 15 O odborném korektorovi 15 Úvod 17 Vývoj jazyka Java 17 Java SE 8 19 Struktura této knihy 20 Klíčové znalosti a pojmy 20 Testové otázky 20 Odpovídá expert 20 Cvičení 20 Předchozí zkušenosti

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo Operátory, výrazy Tomáš Pitner, upravil Marek Šabo Operátor "Znaménko operace", pokyn pro vykonání operace při vyhodnocení výrazu. V Javě mají operátory napevno daný význam, nelze je přetěžovat jako v

Více

Ukázka knihy z internetového knihkupectví www.kosmas.cz

Ukázka knihy z internetového knihkupectví www.kosmas.cz Ukázka knihy z internetového knihkupectví www.kosmas.cz U k á z k a k n i h y z i n t e r n e t o v é h o k n i h k u p e c t v í w w w. k o s m a s. c z, U I D : K O S 1 8 1 1 4 5 Oracle průvodce správou,

Více

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 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á

Více

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování Charakteristika vyučovacího předmětu Cílem předmětu je poskytnout žákům ucelený

Více

Výčtový typ strana 67

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

Více

Metodika. Architecture First. Rudolf Pecinovský rudolf@pecinovsky.cz

Metodika. Architecture First. Rudolf Pecinovský rudolf@pecinovsky.cz Copyright Rudolf Pecinovský, Soubor: 2014_Comm_PrW_Architecture First Methodology.doc, verze 1.00.2413, uloženo po 9.6.2014 14:43 1 z 39 Metodika Architecture First Rudolf Pecinovský rudolf@pecinovsky.cz

Více

Stručný obsah První týden Druhý týden 211 Třetí týden 451 Rejstřík 787

Stručný obsah První týden Druhý týden 211 Třetí týden 451 Rejstřík 787 Stručný obsah První týden 25 den 1 Začínáme 27 den 2 Anatomie programu C++ 43 den 3 Proměnné a konstanty 57 den 4 Výrazy a příkazy 79 den 5 Funkce 107 den 6 Objektově orientované programování 141 den 7

Více

5 Přehled operátorů, příkazy, přetypování

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

Obsah. Kapitola 1. Kapitola 2

Obsah. Kapitola 1. Kapitola 2 Stručný obsah Předmluva...17 Úvod...19 Začínáme...25 Koncepce objektově orientovaného programování...51 Základy jazyka...59 Třídy a objekty...91 Rozhraní a dědičnost... 133 Genericita... 155 Balíčky...

Více

Jazyky C a C++ kompletní průvodce 2., aktualizované vydání. Miroslav Virius

Jazyky C a C++ kompletní průvodce 2., aktualizované vydání. Miroslav Virius Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena v papírové, elektronické či jiné podobě bez předchozího

Více

OOP. Verze : 365 NS, odstavců, slov, znaků, bajtů. a Java 8

OOP. Verze : 365 NS, odstavců, slov, znaků, bajtů. a Java 8 Verze 15.57.5745 2015-10-24: 365 NS, 8 253 odstavců, 89 019 slov, 657 239 znaků, 2 963 968 bajtů OOP a Java 8 Návrh a vývoj složitějšího projektu vyhovujícího zadanému rámci Rudolf Pecinovský 49R_Adventura_TXT_ZLOM.doc

Více

Abstraktní datové typy: zásobník

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í

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

IRAE 07/08 Přednáška č. 1

IRAE 07/08 Přednáška č. 1 Úvod do předmětu OOP Objekt Proč OOP? Literatura, osnova předmětu viz. cvičení Základní prvek OOP sw inženýrství = model reálných objektů (věcí) člověk, auto, okno (ve windows), slovník, = model abstraktní

Více

Obsah. O auto ro vi 13 V ěnování 14 Poděkování 15 Z p ětn á vazba od čtenářů 16. P rogram ování pro M in ecraft v Jávě 17

Obsah. O auto ro vi 13 V ěnování 14 Poděkování 15 Z p ětn á vazba od čtenářů 16. P rogram ování pro M in ecraft v Jávě 17 O auto ro vi 13 V ěnování 14 Poděkování 15 Z p ětn á vazba od čtenářů 16 Zdrojové kódy ke knize 16 Errata 16 KAPITOLA 1 P rogram ování pro M in ecraft v Jávě 17 Příprava serveru Minecraftu 18 Řešení problémů

Více

PB161 Programování v jazyce C++ Přednáška 4

PB161 Programování v jazyce C++ Přednáška 4 PB161 Programování v jazyce C++ Přednáška 4 Přetěžování funkcí Konstruktory a destruktory Nikola Beneš 9. října 2017 PB161 přednáška 4: přetěžování funkcí, konstruktory, destruktory 9. října 2017 1 / 20

Více

VISUAL BASIC. Přehled témat

VISUAL BASIC. Přehled témat VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat

Více

Objektové programování

Objektové programování Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k

Více

Maturitní témata Školní rok: 2015/2016

Maturitní témata Školní rok: 2015/2016 Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní

Více

Ukázka knihy z internetového knihkupectví www.kosmas.cz

Ukázka knihy z internetového knihkupectví www.kosmas.cz Ukázka knihy z internetového knihkupectví www.kosmas.cz U k á z k a k n i h y z i n t e r n e t o v é h o k n i h k u p e c t v í w w w. k o s m a s. c z, U I D : K O S 1 8 1 1 1 2 Objektové programování

Více

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury... 11-1 11.2 Příklad PROG_11-01... 11-2 11.

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury... 11-1 11.2 Příklad PROG_11-01... 11-2 11. David Matoušek Programování v jazyce C v pøíkladech Praha 2011 David Matoušek Programování v jazyce C v pøíkladech Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo

Více

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

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:

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

Objektově orientované programování

Objektově orientované programování 10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh

Více

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

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

Více

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ 4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ OBJEKT Program v Javě je staticky strukturován na třídy, jejichž instance (objekty) za běhu dynamicky programu vznikají a zanikají. Objekt je nejprve

Více

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# 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

Více

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu

Více

ČÁST 1. Základy 32bitového programování ve Windows

ČÁST 1. Základy 32bitového programování ve Windows Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25

Více

Programování v C++ 3, 3. cvičení

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Úvod do programování v jazyce Java

Úvod do programování v jazyce Java Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 5. říjen, 2011 Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 1 / 17 Organizační informace email: petr.krajca@upol.cz

Více

PB161 Programování v jazyce C++ Přednáška 9

PB161 Programování v jazyce C++ Přednáška 9 PB161 Programování v jazyce C++ Přednáška 9 Právo friend Přetěžování operátorů Nikola Beneš 16. listopadu 2015 PB161 přednáška 9: friend, přetěžování operátorů 16. listopadu 2015 1 / 30 Reklama PB173 Tematicky

Více

Seminář Java IV p.1/38

Seminář Java IV p.1/38 Seminář Java IV Seminář Java IV p.1/38 Rekapitulace Deklarace tříd Proměnné, metody, konstruktory, modifikátory přístupu Datové typy primitivní, objektové, pole Dědičnost Řídící konstrukce Podmínky, cykly

Více