OOP. Verze : 365 NS, odstavců, slov, znaků, bajtů. a Java 8
|
|
- Rudolf Soukup
- před 7 lety
- Počet zobrazení:
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
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íceVerze 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
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íce14.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íceObsah. Ú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íce1. 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íce10 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íce11 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íceOBJEKTOVÉ 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ícePř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íceknihovna 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 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
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íce11.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íceUkazka 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íceGenerické 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íceTÉ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íceZá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íceObsah. 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íce8 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íce3. 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íceVirtuá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íce2. 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íceDě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íceknihovna 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íce1. 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íceTří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íceObjektové 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ícePraktické 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íceKurzy, 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íce7. 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íceUká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íceJava/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íceVyř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íceVýč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íceIRAE 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íceDSL 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íceProgramové 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ícePočí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íceDě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íceQuo 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íceRudolf 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íceVaš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íceNá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íceProgramová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ícePř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íceUká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íceUká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íceUká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íceUká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íceUká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íceUká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íce7 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íceObjektově 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íce44G 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íceSeminář 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íceMichal 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íceKurzy, 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
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ícePROGRAMOVÁ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íceKTE / 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íceUkazka 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íceObsah. 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íce19. 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íceAlgoritmizace 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ícePř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íceProgramová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íceObsah 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íceTento 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íceObsah. 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íceProgramová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íce1/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