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

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

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

Transkript

1

2 Verze : 365 NS, odstavců, slov, znaků, 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 verze , uloženo: so :53 Strana 2 z 351 Ukázka knihy z internetového knihkupectví

3 Rudolf Pecinovský OOP a Java 8 Návrh složitějšího projektu vyhovujícího zadanému rámci Copyright Rudolf Pecinovský, 2015 Vydalo nakladatelství Tomáš Bruckner, První vydání, Řepín-Živonín 2015 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ů. Návrh vnitřního layoutu Rudolf Pecinovský Zlom Rudolf Pecinovský Počet stran 351 ISBN (PDF) Strana 3 z 351

4 Všem, kteří se chtějí něco naučiti Strana 4 z 351

5 Stručný obsah 5 Stručný obsah Stručný obsah Stručný obsah... 5 Podrobný obsah... 6 Seznam programů Seznam obrázků Seznam odboček podšeděných bloků Úvod Zadání projektu Podpůrný framework Koncepce testů scénáře Správce scénářů Návrh správce scénářů konkrétní hry Sjednocený správce scénářů Návrh rámce pro hru Začínáme tvořit vlastní hru Vytváříme svět hry Dotahujeme svět hry Vytvoření prvních definic povinných akcí Definice společného rodiče kontejnerů h-objektů Definice nestandardních akcí Realizace rozhovoru Zprovoznění zbylých testů Definice uživatelského rozhraní A Používané termíny B Šablony zdrojových kódů Literatura Rejstřík Strana 5 z 351

6 Podrobný obsah 6 Podrobný obsah Podrobný obsah Stručný obsah... 5 Podrobný obsah... 6 Seznam programů Seznam obrázků Seznam odboček podšeděných bloků Úvod Účel této publikace Komu je kniha určena Rozdělení textu Koncepce výkladu Terminologie Použitý jazyk Potřebné vybavení Doprovodné programy Formátování doprovodných programů Použité typografické konvence Odbočka podšeděný blok Zpětná vazba Zadání projektu Koncepce vyvíjené hry Co to je h-objekt Příklady her Shrnutí co jsme se dozvěděli Podpůrný framework Koncepce frameworku Vymezení mantinelů Doména pedu.eu a balíček eu.pedu Předpřipravené datové typy a soubory Usnadnění testů Propojení frameworku s vyvíjeným programem Umístění zdrojových kódů do balíčku Rodičovský balíček Dvě konvence Konvence respektující školu studenta Konvence nerespektující školu studenta Balíček studenta Balíček řadového čtenáře Balíček doprovodných programů Pojmenování projektů Vytváříte svůj projekt Strana 6 z 351

7 Podrobný obsah Jméno a ID autora Problémy klasického řešení Řešení v Javě Definice vlastního autorského interfejsu Interfejs IGSMFactory Definice vlastní tovární třídy Program Zipper Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Koncepce testů scénáře Jak testovat Programování řízené testy Jednotkové a integrační testy Možnosti testování naší hry Třída Scenario Kroky scénáře třída ScenarioStep Jednoslovnost názvů Typ kroků scénáře třída TypeOfStep Třída ScenarioStep podrobněji Typ scénáře třída TypeOfScenario Simulace průběhu hry Minimální požadavky na hru a její scénáře Diagram tříd balíčku scenario Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Správce scénářů Interfejs IScenarioManager Správce by měl být jedináček Spravované scénáře Jak získat hru k testování Jak získat objekt třídy Jak získat instanci tovární třídy Testování korektnosti správce scénářů Testování korektnosti hry Definice interfejsu IScenarioManager Společný rodič správců třída AScenarioManager Vytvoření scénářů Návrhový vzor Stavitel (Builder) Předání podkladů pro vytvoření scénářů společnému rodiči Shrnutí požadavků Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Návrh správce scénářů konkrétní hry Zadání, které budeme řešit Prázdný správce scénářů Import k odstranění Implementace interfejsu IAuthorPrototype Potomek třídy AScenarioManager Class-objekt sdružené tovární třídy Úprava sdružené tovární třídy Jednoduchý správce využívající literály Počáteční krok Strana 7 z 351

8 Podrobný obsah 8 Pokračovací kroky Přechod mezi scénáři Základní chybový scénář Umístění statických inicializačních bloků Konstruktor Hlavní metoda Trochu chytřejší správce Definice třídy Texts Definice správce scénářů využívajícího konstanty Prověrka ekvivalence obou správců Tovární třída v doprovodném projektu Úkol Dodatečný požadavek k usnadnění testů Náměty Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Sjednocený správce scénářů Řešený problém Návrhový vzor Strategie (Strategy) Použití návrhového vzoru Dekorátor Vytvoření dekorující třídy Přizpůsobení základním požadavkům Probírka definovaných instančních metod Definice konstruktoru Definice metody main(string[]) Použití dědění Vytvoření společné rodičovské třídy Úprava konstruktoru Definice nastavení požadovaného potomka Definice tovární metody Definice metody main(string[]) Úprava tovární třídy Bez propagace do dalších kapitol Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Návrh rámce pro hru Koncepce rámce hry Objekty vystupující ve hře Zadání Definice použitých interfejsů Hra IGame Svět IWorld Prostor IArea Příkaz Akce IAction Přechod H-objekt IItem Hráč Batoh IBag Úkol, cíl Množství, kapacita Upřesnění návrhu rámce IAction Název getname() Popis getdescription() Reakce na zadání příkazu execute(string[]) Ukázka knihy z internetového knihkupectví Strana 8 z 351

9 Podrobný obsah 9 IItem Název getname() Váha getweight() IBag Kapacita getcapacity() Obsah getitems() IArea Název getname() Sousedé prostoru getneighbors() H-objekty v prostoru getitems() IWorld Kolekce prostorů hry getallareas() Aktuální prostor getcurrentarea() IGame Identifikace autora getauthorname(), getauthorid() Tovární třída getfactoryclass() Název getname() Kolekce přípustných akcí getallactions() Získání světa hry getworld() Získání obsahu batohu getbag() Informace o živosti hry isalive() Povinné akce getbasicactions() Externí ukončení hry stop() Provedení příkazu executecommand(string) Doplnění společných rodičů Pojmenované objekty interfejs INamed Pomocné statické metody geto(string,?) Datový typ Optional<E> Kontejnery h-objektů interfejs IItemContainer Doplnění uživatelského rozhraní Diagram tříd balíčku game_txt Diagram tříd v balíčku empty_classes K čemu je dobrý rámec hry Shrnutí co jsme se v kapitole dozvěděli Začínáme tvořit vlastní hru Výběr metody návrhu Začínáme s třídou hry Předek ANamed Interfejs IAuthorPrototype Class-objekt tovární třídy Aktivace tovární metody Vyvíjíme podle TDD Kdo má mít na starosti zpracování příkazů Tři skupiny objektů Jak jsou na tom příkazy/akce? Dva druhy správců Správce jako instance samostatné třídy Správce jako objekt třídy Definice správce akcí třídy AAction Modifikátor přístupu Přístupová práva a jejich vlastnosti Konstruktor Neimplementovaná abstraktní metoda Příprava definice správce Strana 9 z 351

10 Podrobný obsah 10 Úprava definice konstruktoru akcí Konstruktor správce a vytvoření jednotlivých akcí Kde inicializovat Úprava metody execute(string) ve třídě hry Definice metody pro provádění příkazů Dva režimy zpracování příkazů Metoda isalive() ve třídě hry Metoda isalive() ve správci akcí AAction Definice metody executecommand(string) Metoda pro spuštění hry startgame(string) Metoda pro zpracování běžného příkazu executecommoncomand(string) Rozdělení příkazového řádku na slova Převedení počátečního slova na akci Prozatímní podoba definice třídy AAction Test Aktualizace informace o živosti hry Opakování testu Co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Vytváříme svět hry Analýza chybového hlášení Svět hry jako správce prostor hry Vytvoření třídy světa hry (Apartment) Jedináček Přístupová práva Definice metody getallareas() Třída prostorů hry (Room) Začínáme s úpravami Konstruktor prostoru Metoda getneighbors() Změna typu návratové hodnoty Metoda getitems() Zabezpečení nezměnitelnosti kontejneru Třída h-objektů v prostorech (Item) Kdo si má co pamatovat Mají-li h-objekty několik různých vlastností ovlivňujících jejich chování Název a váha/přenositelnost jako parametry konstruktoru Alternativní možnosti předání údajů Proč kódovat dodatečné údaje do prefixu Zveřejnění prefixů Vlastní definice Předběžné vytvoření třídy batohu Dokončení konstruktoru Přístupové metody Zdrojový kód ukázkové hry v doprovodném projektu Dokončení definice třídy prostorů (Room) Dokončení definice třídy světa hry (Apartment) Metoda getallareas() Doplnění konstruktoru Metoda getcurrentarea() Úprava metody getworld() ve třídě hry Test Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Dotahujeme svět hry Strana 10 z 351

11 Podrobný obsah Úvahy o inicializaci Inicializace světa hry a správce prostorů Nastavení výchozího prostoru Vyvolání inicializace jednotlivých prostorů Inicializace jednotlivých prostorů Nastavení h-objektů uložených v místnosti na počátku hry Příprava na nastavení počátečních sousedů Nastavení počátečních sousedů Test Oprava definice metody getbag() ve třídě hry Test Dotažení definice třídy batohu Metoda getitems() Metoda initialize() Začlenění inicializace batohu mezi ostatní Metoda getcapacity() Test Co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Vytvoření prvních definic povinných akcí Jak sjednotit postup pro většinu her Definice nového scénáře Úprava definice konstruktoru Úprava definice metody main(string[]) Definice akce pro nápovědu Zkopírování kostry třídy Rodičovská třída Metoda execute(string...) Doplnění těla metody getallactions() ve třídě hry Doplnění těla metody getallactions() ve třídě správce akcí Dokončení definice metody execute(string...) Proč to nechodí Vytvoření objektu definované akce Test Definice akce pro přesun z aktuálního prostoru do zadaného sousedního prostoru Metoda execute(string...) Existence parametru Korektnost parametru Realizace přesunu do cílového prostoru Test Definice akce pro zvednutí h-objektu v aktuálním prostoru a jeho přemístění do batohu Metoda execute(string...) Existence parametru Název zvedaného h-objektu Korektnost parametru Přítomnost h-objektu v aktuálním prostoru Přenositelnost požadovaného h-objektu Změna obsahu kolekce h-objektů v prostoru Úpravy definice třídy batohu Dokončení definice metody execute(string...) Test Co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Definice společného rodiče kontejnerů h-objektů Strana 11 z 351

12 Podrobný obsah Definice akce pro položení h-objektu Úvahy o výhodnosti společného předka LSP (Liskov Substitution Principle) Substituční princip Liskové Více předků prostoru Definice společného předka AItemContainer Kontrolní test Vlastní definice předka První úprava jeho budoucích potomků: tříd prostorů a batohu Dotváříme společného předka Úpravy odvozené od třídy prostorů Vytknutí konstant týkajících se h-objektů Úprava konstruktoru Přidání parametru rodičovskému konstruktoru Metoda getitems() Doplnění implementace interfejsu IItemContainer Metoda removeitem(item) Metoda initializeitems() Úpravy odvozené od třídy batohu Atributy items a exporteditems Konstruktor Proměnný počet parametrů a jeho specifika Metoda getitems() Metoda initialize() Metoda tryadditem(item) Přidání dalších metod Shrnutí Kontrolní test Pokračujeme v definici akce pro pokládání h-objektů ActionPutDown Test Příkaz k předčasnému ukončení hry ActionExit Metoda execute(string...) Test Aktualizace informace o živosti hry Dokončení definice metody execute(string...) Test Prověření programu chybovým scénářem Doplnění reakce na prázdný příkaz Test Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Definice nestandardních akcí Změna testu Definice akce pro otevření ledničky Definice třídy State Vytvoření třídy ActionOpen Definice metody execute(string...) Test existence parametru Test přítomnost otevíraného h-objektu Test otevíratelnosti zadaného h-objektu Dokončení definice Doplnění testu podloženost Test Oprava definice akce pro položení h-objektu Odhalování chyby krokováním programu Test Strana 12 z 351

13 Podrobný obsah Definice akce pro přečtení papíru Test existence parametru Test přítomnosti daného h-objektu v batohu Test, zda je požadováno přečtení h-objektu, který lze opravdu přečíst Test nasazených brýlí Výsledná podoba metody Test Definice akce pro nasazení brýlí Test Definice akce pro podložení ledničky Test plnosti batohu Definice metody execute(string...) Test Co jsme prozatím přeskočili Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Realizace rozhovoru Specifika rozhovoru Přepnutí do konverzačního režimu Zavedení příznaku prověřenosti Úprava metody execute(string...) ve třídě ActionPickUp Třída Conversation Metoda start(item) Úprava metody executecommand(string) ve třídě AAction Definice metody answer(string) ve třídě Conversation Stavy rozhovoru Reakce v závislosti na stavu Vlastní definice metody answer(string) Test Definice metody waitingfortheage(string) Test Definice metody waitingfortheyear(string) Test Příkaz pro zavření ledničky ActionCLose Test Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Zprovoznění zbylých testů Metoda stop() ve třídě RUPApartmentGame Test Metoda getbasicactions() ve třídě RUPApartmentGame Test Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali Definice uživatelského rozhraní Co je třeba navrhnout Úprava rozdělení do balíčků Uživatelské rozhraní využívající služeb třídy javax.swing.joptionpane Definice metody startgame() Metody třídy JOptionPane Definice metody startgame(igame) Test Strana 13 z 351

14 Podrobný obsah Uživatelské rozhraní komunikující prostřednictvím standardního vstupu a výstupu Nevýhody používání standardního vstupu a výstupu Třída java.util.scanner Vytvoření třídy pro konzolový vstup Test Zobecnění uvedených řešení Interfejs IGamePlayer Hlavní metoda umožňující volbu použitého rozhraní Výsledná definice třídy UIC_GamePlayer Další zobecnění uživatelského rozhraní Shrnutí co jsme se v kapitole dozvěděli a co jsme prozatím naprogramovali A Používané termíny Rozhraní (interface) Signatura (signature) Kontrakt (contract) Interfejs (interface type) Rodičovský podobjekt Metoda (method) Konstruktor třídy (class constructor) Konstruktor instancí (instance constructor) Instance typu Xxx (Xxx instance) Mateřská třída objektu (object s mother class) Přetížení metody (method overloading) Zakrytí metody (method hiding) Přebití metody (method overriding) Předefinování metody (method redefining) Přepsání metody (method rewriting) Instance versus objekt Class-objekt datového typu Xxx (class-object of the Xxx data type) Kontejner B Šablony zdrojových kódů Šablona interfejsu Šablona třídy Literatura Rejstřík Ukázka knihy z internetového knihkupectví Strana 14 z 351

15 Seznam programů 15 Seznam programů Seznam programů Výpis 2.1: Definice interfejsu IAuthorPrototype, tentokrát i s deklarací balíčku a s importy (ty budou v příštích výpisech chybět) Výpis 2.2: Definice interfejsu IGSMFactory Výpis 3.1: Výčtový typ TypeOfStep Výpis 3.2: Výchozí podoba třídy ScenarioStep Výpis 3.3: Definice třídy TypeOfScenario Výpis 4.1: Definice metody getinstanceoffactory(class<t>) v interfejsu IGSMFactory Výpis 4.2: Definice interfejsu IScenarioManager Výpis 5.1: Výpis první části zdrojového kódu třídy RUPScenarioManagerLit až po definici prvních dvou kroků úspěšného (šťastného) scénáře Výpis 5.2: Výpis druhé části zdrojového kódu třídy RUPScenarioManagerLit od posledního kroku úspěšného (šťastného) scénáře až po definici prvních čtyř kroků chybového scénáře Výpis 5.3: Výpis třetí části zdrojového kódu třídy RUPScenarioManagerLit začínající za definicí kroků chybového scénáře (tj. definicí atributu s odkazem na jedináčka) a pokračující až do konce definice třídy Výpis 5.4: Výpis autotestu ukázkového správce scénářů z výpisů 5.1 až 5.3 se zakomentovanými kroky testujícími v chybovém scénáři reakci za zadání příkazů bez parametrů Výpis 5.5: Definice třídy Texts definující jednotlivé textové konstanty Výpis 5.6: Definice prvních tří kroků úspěšného scénáře ve třídě ManagerWithConstants Výpis 5.7: Definice metody getscenariomanager() ve třídě RUPGSMFactory Výpis 6.1: Definice statické nastavovací metody setdelegate(ascenariomanager) ve Výpis 6.2: třídě RUPScenarioManagerD Definice statické tovární metody getinstance() ve třídě RUPScenarioManagerD Výpis 6.3: Definice bezparametrického konstruktoru ve třídě RUPScenarioManagerD Výpis 6.4: Definice metody main(string[]) ve třídě RUPScenarioManagerD Výpis 6.5: Definice instančního konstruktoru ve třídě RUPScenarioManagerH Výpis 6.6: Výpis 6.7: Definice statické nastavovací metody setchild(rupscenariomanagerh) ve třídě RUPScenarioManagerH Definice statické tovární metody getinstance() ve třídě RUPScenarioManagerH Výpis 6.8: Definice statické tovární třídy RUPGSMFactory Výpis 7.1: Popis rozhraní konstruktoru instancí třídy BasicActions Výpis 8.1: Definice konstruktoru instancí třídy RUPApartmentGame Výpis 8.2: Definice metody getgame() ve třídě RUPGSMFactory Strana 15 z 351

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

OOP. Verze : 365 NS, odstavců, slov, znaků, bajtů. a Java 8 Verze 15.58.5826 2015-11-21: 365 NS, 8 252 odstavců, 89 011 slov, 657 168 znaků, 2 924 032 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.doc

Více

Verze 0.13.5299: 226 NS, 5 496 odstavců, 54 943 slov, 406 692 znaků, 2 052 608 bajtů. Adventura. Rudolf Pecinovský 2015

Verze 0.13.5299: 226 NS, 5 496 odstavců, 54 943 slov, 406 692 znaků, 2 052 608 bajtů. Adventura. Rudolf Pecinovský 2015 Verze 0.13.5299: 226 NS, 5 496 odstavců, 54 943 slov, 406 692 znaků, 2 052 608 bajtů Návrh semestrálního projektu a jeho rámce Adventura Rudolf Pecinovský 2015 49R_Adventura.doc verze 0.13.5299, uloženo:

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

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

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

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

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

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

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

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

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

Ú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

úvod do objektové architektury pro mírně pokročilé Rudolf Pecinovský 2014

úvod do objektové architektury pro mírně pokročilé Rudolf Pecinovský 2014 44G UOA2 J8 ZLOM.doc verze 3.01.5173, Ukázka uloženo: knihy pá 23.1.15 z internetového 10:35 knihkupectví www.kosmas.cz Strana 2 z 651 Java 8 úvod do objektové architektury pro mírně pokročilé Rudolf Pecinovský

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

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

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

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

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

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

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

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

Virtuální metody - polymorfizmus

Virtuální metody - polymorfizmus - polymorfizmus - potomka lze použít v místě, kde je možné použít předka - v dosud probraných situacích byly vždy volány funkce, které jsou známy již v době překladu. V situaci, kdy v době překladu není

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

Dědičnost (inheritance)

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č)

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

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

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

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

Praktické zkušenosti s řízením projektů otevřených dat Dobrá / špatná praxe

Praktické zkušenosti s řízením projektů otevřených dat Dobrá / špatná praxe Praktické zkušenosti s řízením projektů otevřených dat Dobrá / špatná praxe Tomáš Pecha, Benedikt Kotmel 4. dubna 2017 ISSS 2017 Registrační číslo: Název projektu: CZ.03.4.74/0.0/0.0/15_025/0004172 Implementace

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

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

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

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

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

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

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

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

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

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

Dědění, polymorfismus

Dědění, polymorfismus Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá

Více

Quo vadis programování? Automatizace vyhodnocování studentských úloh

Quo vadis programování? Automatizace vyhodnocování studentských úloh Vaše jistota na trhu IT Quo vadis programování? Automatizace vyhodnocování studentských úloh Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Vladimír Oraný vladimir.orany@gmail.com Vaše jistota na trhu IT Obsah

Více

Rudolf Pecinovský. Java 9 JShell

Rudolf Pecinovský. Java 9 JShell Rudolf Pecinovský Java 9 JShell ½½ Poskytuje informace v předstihu ½½ Nezatěžuje výkladem známých konstrukcí ½½ Probírá nástroj pro výuku a rychlé experimenty ½½ Ukazuje, jak zabudovat JShell do svého

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

Návrhové vzory OMO, LS 2014/2015

Návrhové vzory OMO, LS 2014/2015 Návrhové vzory OMO, LS 2014/2015 Motivace Cílem objektového návrhu je strukturu aplikace navrhnout tak, aby splňovala následující kritéria: snadná rozšiřitelnost účelnost testovatelnost dokumentovatelnost

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace

Více

Předmluva 11 Typografická konvence použitá v knize 12. 1 Úvod do Excelu 2003 13

Předmluva 11 Typografická konvence použitá v knize 12. 1 Úvod do Excelu 2003 13 Předmluva 11 Typografická konvence použitá v knize 12 1 Úvod do Excelu 2003 13 Spuštění a ukončení Excelu 14 Spuštění Excelu 14 Ukončení práce s Excelem 15 Přepínání mezi otevřenými sešity 16 Oprava aplikace

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 0 5 8 4 U k á z k a k n i h

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 2 1 U k á z k a k n i h

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 8 1 7 2 Ukázka knihy z internetového

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 0 9 2 6 Ukázka knihy z internetového

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 0 8 1 8 Ukázka knihy z internetového

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 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 0 8 1 0 U k á z k a k n i h y

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

Objektově orientovaný přístup

Objektově orientovaný přístup Objektově orientovaný přístup 1 Historie programovacích jazyků 1945: John von Neumann článek o nové metodě pro ukládání programů 1945: Grace Hopper poprvé termín "bug" 1946: Konrad Zuse Plankalkul - první

Více

44G UOA2 J8 ZLOM.doc verze , uloženo: pá :35 Strana 2 z 651

44G UOA2 J8 ZLOM.doc verze , uloženo: pá :35 Strana 2 z 651 44G UOA2 J8 ZLOM.doc verze 3.01.5173, uloženo: pá 23.1.15 10:35 Strana 2 z 651 Java 8 úvod do objektové architektury pro mírně pokročilé Rudolf Pecinovský 2014 44G_UOA2_J8_ZLOM.doc verze 3.01.5173, uloženo:

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

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

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

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11 Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Kapitola 1 Než začneme 11 Dynamické vs. statické stránky 11 Co je a k čemu slouží PHP 12 Instalace potřebného softwarového

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

KTE / ZPE Informační technologie

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

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

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

19. Projekt Adventura

19. Projekt Adventura Projekt Adventura strana 189 19. Projekt Adventura 19.1. Základní popis, zadání úkolu Pracujeme na projektu Adventura, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy Hra.

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

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.

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

Více

Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19

Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19 Programování II Abstraktní třída Vícenásobná dědičnost 2018/19 Osnova přednášky Polymorfismus - důsledky. Abstraktní třída. Vícenásobná dědičnost. Polymorfismus - důsledky Polymorfismus Polymorfismus je

Více

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

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

Obsah. 1 Úvod do Visia 2003 15. 2 Práce se soubory 47. Předmluva 11 Typografická konvence použitá v knize 13

Obsah. 1 Úvod do Visia 2003 15. 2 Práce se soubory 47. Předmluva 11 Typografická konvence použitá v knize 13 Předmluva 11 Typografická konvence použitá v knize 13 1 Úvod do Visia 2003 15 Visio se představuje 16 Výchozí podmínky 16 Spuštění a ukončení Visia 18 Způsoby spuštění Visia 18 Ukončení práce s Visiem

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

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii

Více