načítání...
nákupní košík
Košík

je prázdný
a
b

E-kniha: Java 8 -- Úvod do objektové architektury pro mírně pokročilé - Rudolf Pecinovský

Java 8 -- Úvod do objektové architektury pro mírně pokročilé

Elektronická kniha: Java 8
Autor: Rudolf Pecinovský
Podnázev: Úvod do objektové architektury pro mírně pokročilé

Java 8 je druhým dílem 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ž nesoustředí na výuku syntaxe jazyka a práce s ... (celý popis)
Titul je skladem - ke stažení ihned
Médium: e-kniha
Vaše cena s DPH:  535
+
-
17,8
bo za nákup

hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%   celkové hodnocení
0 hodnocení + 0 recenzí

Specifikace
Nakladatelství: » Grada
Dostupné formáty
ke stažení:
EPUB, MOBI, PDF
Zabezpečení proti tisku a kopírování: ano
Médium: e-book
Rok vydání: 2014
Počet stran: 655
Rozměr: 24 cm
Úprava: ilustrace
Vydání: První vydání
Skupina třídění: Programování. Software
Učební osnovy. Vyučovací předměty. Učebnice
Jazyk: česky
ADOBE DRM: bez
ISBN: 978-80-247-4638-8
Ukázka: » zobrazit ukázku
Popis / resumé

Učebnice Java 8 je úvodem do objektové architektury, tentokrát pro mírně pokročilé. Učební text se soustředí na objektově orientované programování a návrhy architektury. Teorie je procvičována na praktických příkladech.

Popis nakladatele

Java 8 je druhým dílem 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ž nesoustředí 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 a pomůže všem, kteří potřebují získat hlubší vhled do problematiky objektově orientovaného programování a návrhu architektury objektově orientovaných programů. (úvod do objektové architektury pro mírně pokročilé)

Předmětná hesla
Zařazeno v kategoriích
Rudolf Pecinovský - další tituly autora:
 (e-book)
Návrhové vzory Návrhové vzory
 (e-book)
Java 7 -- učebnice objektové architektury pro začátečníky Java 7
 (e-book)
Myslíme objektově v jazyku Java -- kompletní učebnice pro začátečníky, 2., aktualizované a rozšířené vydání Myslíme objektově v jazyku Java
 (e-book)
Office 2010 -- podrobný průvodce Office 2010
 (e-book)
Office 2016 -- Průvodce uživatele Office 2016
 (e-book)
Java 9 - JShell -- Edice pro netrpělivé Java 9 - JShell
 
Recenze a komentáře k titulu
Zatím žádné recenze.


Ukázka / obsah
Přepis ukázky

Rudolf Pecinovský

2014

Java 8

úvod do objektové architektury

pro mírně pokročilé


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

písemného souhlasu nakladatele. Neoprávněné užití této knihy bude trestně stíháno. Rudolf Pecinovský Java 8 Úvod do objektové architektury pro mírně pokročilé TIRÁŽ TIŠTĚNÉ PUBLIKACE______________________________________ Vydala Grada Publishing a.s. U Průhonu 22, Praha 7 jako svoji 5670. publikaci Odborní lektoři: doc. Ing. Pavel Herout, Ph.D., doc. MUDr. Jiří Kofránek, CSc., doc. Ing. Vojtěch Merunka, Ph.D., doc. Ing. Miroslav Virius, CSc. Odpovědný redaktor: Martin Vondráček, Ladislava Soukupová Návrh vnitřního layoutu: Rudolf Pecinovský Zlom: Rudolf Pecinovský Počet stran 656 První vydání, Praha 2014 Vytiskla tiskárna PROTISK, s. r. o. 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ů. Copyright © Grada Publishing, a.s., 2014 Cover Photo © fotobanka Allphoto.cz ISBN 978-80-247-4638-8 TIRÁŽ ELEKTRONICKÉ PUBLIKACE______________________________________ ISBN 978-80-247-9480-8 (ve formátu PDF) ISBN 978-80-247-9481-5 (ve formátu EPUB)

Mé ženě Jarušce a dětem

Štěpánce, Pavlínce, Ivance a Michalovi

6 Java 8 – Úvod do objektové architektury pro mírně pokročilé

Stručný obsah

Stručný obsah

Skrytí spoluautoři ........................................................................................................ 22

Úvod ............................................................................................................................. 23

Část I: Vývojové prostředí 29

1. Co byste měli znát z prvního dílu ....................................................................... 30

2. Vývojové prostředí NetBeans ............................................................................. 46

3. Projekty v NetBeans – Library ........................................................................... 76

4. Vytváříme nový projekt – AHA .............................................................................. 99

5. Práce na připraveném projektu – Elevator ..................................................... 111

6. Spolupráce projektů – Veh icle ......................................................................... 138

7. Testovací třída – VehicleTest, Robot ............................................................... 162

8. Ladění programů – Robot .................................................................................. 190

Část II: Vylepšování architektury 201

9. Program ve výjimečné situaci .......................................................................... 202

10. Návrhový vzor Tovární metoda ........................................................................ 228

11. Návrhový vzor Stav – Robot4 ........................................................................... 243

12. Návrhový vzor Stavitel – RingBuilder ............................................................. 260

13. Návrhový vzor Dekorátor – SmoothVehicle ..................................................... 284

14. Implicitní implementace – RingVehicle, ControlledVehicle ......................... 300

15. Generické datové typy a metody ...................................................................... 320

16. Pokročilejší práce s typovými parametry ........................................................ 342

17. Funkční interfejsy a lambda-výrazy ................................................................. 358

18. Rekurzivní volání ............................................................................................... 386

19. Interní datové typy ............................................................................................. 397

20. Kontejnery a datovody ...................................................................................... 424

Stručný obsah 7

Část III: Dědění implementace 455

21. Podrobnosti o konstruktorech tříd a instancí ................................................. 456

22. Úvod do dědění implementace: Mother – Daughter – Granddaughter ........... 473

23. Zakrývání atributů a metod ............................................................................... 498

24. Virtuální metody a jejich přebíjení ................................................................... 515

25. Pasti a propasti dědění implementace ............................................................ 532

26. Vytváříme rodičovskou třídu – ARobot1 ........................................................... 555

Část IV: Další užitečné programové konstrukce 575

27. Učíme program přemýšlet ................................................................................ 576

28. Ještě jednu rundu, prosím ................................................................................ 603

29. Další důležité datové struktury ......................................................................... 619

30. O čem jsme ještě nehovořili ............................................................................. 638

Rejstřík ....................................................................................................................... 642 Java 8 – Úvod do objektové architektury pro mírně pokročilé

Podrobný obsah

Podrobný obsah

Skrytí spoluautoři ........................................................................................................ 22

Úvod ............................................................................................................................. 23

Komu je kniha určena ......................................................................................................................... 23

Koncepce knihy .................................................................................................................................. 23

Co se naučíte, uspořádání knihy ....................................................................................................... 24

Programovací jazyk ............................................................................................................................ 25

Potřebné vybavení .............................................................................................................................. 25

Doprovodné projekty .......................................................................................................................... 26

Doplňková literatura ........................................................................................................................... 26

Použité konvence ................................................................................................................... 27

Místní nabídka ..................................................................................................................................... 27

Formátování ........................................................................................................................................ 27

Odbočka ............................................................................................................................................... 28

Část I: Vývojové prostředí 29

1. Co byste měli znát z prvního dílu ....................................................................... 30

1.1 Přehled látky prvního dílu .......................................................................................... 30

1.2 Definice × deklarace ................................................................................................... 31

1.3 Co je to objekt ............................................................................................................. 31

1.4 Datový typ, třída, class-objekt ................................................................................... 32

1.5 Zpráva × metoda, polymorfismus ............................................................................. 33

1.6 Rozhraní × interfejs .................................................................................................... 33

1.7 Zapouzdření a skrývání implementace ..................................................................... 34

1.8 Datové typy a jejich dědění ....................................................................................... 35

Vlastní instance třídy a mateřská třída objektu ............................................................................... 36

LSP – Liskov Substitution Principle ................................................................................................. 36

Přetěžování × přebíjení × zakrývání metod ...................................................................................... 37

1.9 Odkazové a hodnotové datové typy ......................................................................... 38

1.10 Návrhové vzory ........................................................................................................... 38

1.11 Modul × komponenta × knihovna × framework ....................................................... 40

Modul ................................................................................................................................................... 40

Komponenta ........................................................................................................................................ 40

Knihovna .............................................................................................................................................. 41

Framework ........................................................................................................................................... 41

1.12 Změny šablon ............................................................................................................. 42

1.13 Knihovna CanvasManager ........................................................................................... 44

1.14 Shrnutí – co jsme se naučili ...................................................................................... 44

2. Vývojové prostředí NetBeans ............................................................................. 46

2.1 Instalace ...................................................................................................................... 47

Instalace pro Windows ................................................................................................................... 48

2.2 První spuštění ............................................................................................................. 50

Podrobný obsah 9

2.3 Aplikační okno, panely a karty .................................................................................. 51

Změny rozměrů panelů .......................................................................................................................53

Minimalizace a obnovení panelů a karet ...........................................................................................53

Další možnosti .....................................................................................................................................53

2.4 Otevření existujícího projektu ................................................................................... 53

2.5 Navigátor a jeho ikony ............................................................................................... 57

2.6 Úprava nastavení prostředí ....................................................................................... 57

2.7 General – obecná nastavení ....................................................................................... 58

2.8 Editor – nastavení editoru .......................................................................................... 59

Karta General ........................................................................................................................................59

Braces Matching .............................................................................................................................59

Camel Case Behavior ......................................................................................................................59

Search .............................................................................................................................................59

Karta Folding .........................................................................................................................................60

Karta Formatting ...................................................................................................................................60

Karta Code Completion .........................................................................................................................61

Language ........................................................................................................................................61

Karta Code Templates ...........................................................................................................................62

Karta Hints ............................................................................................................................................63

Karta Highlighting .................................................................................................................................63

Karta Macros .........................................................................................................................................63

Karta OnSave ........................................................................................................................................64

Karta Spellchecker ................................................................................................................................64

2.9 Fonts & Colors – nastavení písma a barev ................................................................ 64

Nastavení písma ..................................................................................................................................64

Vybarvení komentářů ..........................................................................................................................65

2.10 Keymap – klávesové zkratky ...................................................................................... 67

2.11 Java – nastavení pro Javu .......................................................................................... 67

2.12 Team ............................................................................................................................. 67

Karta Action Items ................................................................................................................................67

2.13 Appearance – nastavení vzhledu ............................................................................... 67

Karta Document Tabs ............................................................................................................................68

Karta Windows ......................................................................................................................................69

Karta Look and Feel ..............................................................................................................................69

2.14 Miscellaneous – zbylá nastavení ................................................................................ 69

Karta CSS Preprocessors ......................................................................................................................70

Karta Diff ...............................................................................................................................................70

Karta Files .............................................................................................................................................70

Karta Output .........................................................................................................................................70

Karta Terminal .......................................................................................................................................71

2.15 Nastavení panelů nástrojů ......................................................................................... 71

2.16 Export a import nastavení ......................................................................................... 72

Export ...................................................................................................................................................73

Import....................................................................................................................................................73

2.17 Shrnutí – co jsme se naučili ...................................................................................... 74

3. Projekty v NetBeans – Library .......................................................................... 76

3.1 Balíčky programů tohoto dílu .................................................................................... 76

3.2 Balíčková struktura knihovny ................................................................................... 77

3.3 Složky se zdrojovými soubory .................................................................................. 77

3.4 Balíčky na kartě projektů ........................................................................................... 80

3.5 Práce s balíčky ........................................................................................................... 81

Vytvoření nového balíčku ...................................................................................................................81

Přesun tříd mezi balíčky .....................................................................................................................82

Importy z vlastního balíčku .............................................................................................................85


10 Java 8 – Úvod do objektové architektury pro mírně pokročilé

Přejmenování balíčku ......................................................................................................................... 85

3.6 Překlad a sestavení projektu ..................................................................................... 87

3.7 Programátorská dokumentace (API) ........................................................................ 87

Dokumentace při psaní kódu ............................................................................................................. 87

Možnosti okna dokumentace ............................................................................................................. 88

Samostatná karta dokumentace ........................................................................................................ 89

Vytvoření dokumentace projektu ...................................................................................................... 89

3.8 Karta souborů ............................................................................................................. 90

3.9 Vlastnosti projektu ..................................................................................................... 91

Stránka Sources ................................................................................................................................... 91

Stránka Libraries .................................................................................................................................. 92

Stránka Compiling ............................................................................................................................... 92

Stránka Documenting .......................................................................................................................... 92

Stránka Run ......................................................................................................................................... 93

3.10 Přejmenování projektu ............................................................................................... 93

3.11 Definice projektu jako knihovny ............................................................................... 94

3.12 Shrnutí – co jsme se naučili ...................................................................................... 96

4. Vytváříme nový projekt – AHA .............................................................................. 99

4.1 Vytvoření nového projektu ........................................................................................ 99

4.2 Spuštění aplikace ..................................................................................................... 103

4.3 Vytvoření kopie třídy ................................................................................................ 103

4.4 Nápověda při psaní kódu ......................................................................................... 104

4.5 Zadání spouštěcí třídy projektu .............................................................................. 105

4.6 Spouštěcí konfigurace ............................................................................................. 106

4.7 Vytvoření a spuštění aplikace ................................................................................. 107

4.8 Paralelní spuštění více aplikací ............................................................................... 108

4.9 Shrnutí – co jsme se naučili .................................................................................... 109

5. Práce na připraveném projektu – Elevator ..................................................... 111

5.1 Poloprázdná třída a metoda .................................................................................... 111

5.2 Zadání ........................................................................................................................ 112

5.3 Analýza problému ..................................................................................................... 113

Sjednocení různých řešení .............................................................................................................. 113

Implementované interfejsy .............................................................................................................. 114

Okolí ................................................................................................................................................... 114

Konstruktory ..................................................................................................................................... 115

Dva přístupy k řešení problému ...................................................................................................... 116

Potřebné metody ............................................................................................................................... 117

5.4 Interfejs IElevator ................................................................................................... 118

5.5 Vzorový projekt ......................................................................................................... 120

5.6 Testovací třída .......................................................................................................... 121

Přizpůsobující se společná testovací třída .................................................................................... 121

Inicializace a finalizace bloku testů v dané třídě ........................................................................... 122

Třídy jako objekty – class-objekt třídy ............................................................................................ 123

Zafixování testované třídy ............................................................................................................ 123

Vynechání konkrétního testu ........................................................................................................... 124

Spuštění a vyhodnocení testů ......................................................................................................... 125

5.7 Definice vlastní třídy ................................................................................................ 126

Atributy .............................................................................................................................................. 126

Konstruktory a metody interfejsů IPaintable a IMovable ........................................................... 127

Interfejs a data ................................................................................................................................... 128

Postup při návrhu metod deklarovaných v interfejsu IElevator ................................................ 129

Metoda goTo(int) – předehra.......................................................................................................... 129

Metody floor2y(int) a y2floor(int) ............................................................................................ 129

Podrobný obsah 11

Metoda goTo(int) – realizace ..........................................................................................................130

Metoda comeTo(IMovable) ................................................................................................................130

Metoda enter(IMovable) ..................................................................................................................130

Metody exitLeft() a exitRight() ..................................................................................................131

Test převozu pasažéra ......................................................................................................................131

Metody transportRight(IMovable,int) a transportLeft(IMovable,int) ................................132

5.8 Porovnání řešení ...................................................................................................... 132

5.9 Práce s více soubory ............................................................................................... 135

5.10 Shrnutí – co jsme se naučili .................................................................................... 136

6. Spolupráce projektů – Vehicle ........................................................................ 138

6.1 Zadání ........................................................................................................................ 138

6.2 Vytvoření nové třídy ................................................................................................. 139

Zakomentování a odkomentování části kódu .................................................................................141

6.3 Dokumentace balíčku .............................................................................................. 141

6.4 Použití frameworku či knihovny .............................................................................. 143

Třída IO jako aplikace návrhového vzoru Fasáda ..........................................................................144

Zkopírování zdrojových souborů .....................................................................................................144

Podporované způsoby připojení potřebného projektu ..................................................................144

Připojení celého potřebného projektu .............................................................................................145

Přidání JAR-souboru mezi knihovny ...............................................................................................146

Přidání propojení na knihovnu .........................................................................................................148

6.5 Oprava špatného nastavení ..................................................................................... 149

Nevytvořený JAR-soubor .................................................................................................................150

Přestěhování souborů na jiné místo disku .....................................................................................150

6.6 Poloautomatická implementace interfejsu ............................................................. 150

6.7 Konstruktory ............................................................................................................. 151

Poloautomatická generace konstruktoru ........................................................................................151

Poloautomatické doplnění komentářových značek .......................................................................152

Doplnění těl konstruktorů .................................................................................................................153

Dokončení těla konstruktoru ............................................................................................................153

Výraz → lokální proměnná ...............................................................................................................155

Lokální proměnná → atribut ............................................................................................................156

6.8 Rychlý test ................................................................................................................ 157

6.9 Historie změn ............................................................................................................ 158

Podrobnosti o barvách .....................................................................................................................159

6.10 Shrnutí – co jsme se naučili .................................................................................... 161

7. Testovací třída – VehicleTest, Robot ............................................................... 162

7.1 Vytvoření ................................................................................................................... 162

7.2 Obsah testovací třídy ............................................................................................... 165

Inicializace a finalizace .....................................................................................................................165

Těla poloprázdných metod ...............................................................................................................165

7.3 Šablona testovací třídy ............................................................................................ 166

Parametry anotace @Test ..................................................................................................................167

7.4 Využití služeb třídy IndentingReporter ................................................................. 167

Popis některých metod .....................................................................................................................168

Použití odsazení ................................................................................................................................173

Získání názvu spouštěného testu ....................................................................................................173

7.5 Spuštění testů ........................................................................................................... 175

Spuštění konkrétního testu ..............................................................................................................175

Spuštění všech testů dané třídy ......................................................................................................175

Spuštění všech testů projektu .........................................................................................................176

7.6 Definice inicializačních a finalizačních metod ....................................................... 176

Získání správce plátna ......................................................................................................................177

Lokální proměnná → statická konstanta ........................................................................................177 Java 8 – Úvod do objektové architektury pro mírně pokročilé

7.7 Nechtěné automatické doplnění identifikátoru ...................................................... 180

7.8 Vytvoření požadovaných testů ................................................................................ 181

Test funkce přípravku ....................................................................................................................... 181

Test implementovaných metod ....................................................................................................... 181

7.9 Definice přístupových metod testované třídy ........................................................ 183

7.10 Lokalizace souboru v projektu ................................................................................ 184

7.11 Přejmenování třídy spolu s testem ......................................................................... 184

7.12 Přesun do nového balíčku ....................................................................................... 185

7.13 Vyhledávání a nahrazování textu ............................................................................ 186

7.14 Shrnutí – co jsme se naučili .................................................................................... 188

8. Ladění programů – Robot .................................................................................. 190

8.1 Metody ladění ............................................................................................................ 190

Kontrolní tisky ................................................................................................................................... 191

Používání ladícího programu ........................................................................................................... 191

8.2 Nastavení zarážky v řádku kódu ............................................................................. 191

8.3 Možnosti krokování .................................................................................................. 192

8.4 Zobrazování dat ........................................................................................................ 193

8.5 Zásobník volání ........................................................................................................ 195

8.6 Zarážka na entitě ...................................................................................................... 195

Trvalost zarážek ................................................................................................................................ 197

8.7 Záložky (bookmark) .................................................................................................. 198

8.8 Úkoly .......................................................................................................................... 198

8.9 Shrnutí – co jsme se naučili .................................................................................... 198

Část II: Vylepšování architektury 201

9. Program ve výjimečné situaci .......................................................................... 202

9.1 Co to jsou výjimky .................................................................................................... 202

9.2 Nejdůležitější výjimky .............................................................................................. 203

9.3 Vyhození výjimky ...................................................................................................... 204

9.4 Výjimky a nedosažitelný kód ................................................................................... 206

9.5 Co výjimky umí ......................................................................................................... 206

getMessage() .............................................................................................................................. 206

toString() .................................................................................................................................. 207

printStackTrace() .................................................................................................................... 207

printStackTrace(PrintStream) ............................................................................................... 207

9.6 Hierarchie dědění výjimek ....................................................................................... 208

9.7 Zachycení vyhozené výjimky .................................................................................. 209

Analýza rekurzivní metody .............................................................................................................. 211

9.8 Několik současně odchytávaných výjimek ............................................................ 212

Společná reakce na několik výjimek ............................................................................................... 213

9.9 Společný úklid – blok finally ................................................................................ 214

9.10 Testování správného vyhození výjimky ................................................................. 216

Tělo metody testující správné vyhození výjimky........................................................................... 216

Specifikace očekávané výjimky v anotaci ...................................................................................... 217

9.11 Definice vlastních výjimek ....................................................................................... 218

9.12 Kontrolované výjimky .............................................................................................. 218

9.13 Převedení kontrolované výjimky na nekontrolovanou ......................................... 220

9.14 Informace o skutečném původci výjimky .............................................................. 221

9.15 Ověřování podmínek – příkaz assert ..................................................................... 222

Design by Contract ........................................................................................................................... 223

9.16 Shrnutí – co jsme se naučili .................................................................................... 225


Podrobný obsah 13

10. Návrhový vzor Tovární metoda ........................................................................ 228

10.1 Motivace .................................................................................................................... 228

10.2 Jak na to .................................................................................................................... 230

10.3 Použití v projektu s výtahy ...................................................................................... 231

10.4 Programování proti rozhraní ................................................................................... 234

10.5 Použití tovární třídy v projektu s vozidly ................................................................ 235

Definice interfejsu IVehicle .............................................................................................................235

Testovací třída VehicleTest .............................................................................................................237

10.6 Možnost výběru testované třídy .............................................................................. 238

Přepínání mezi pevně zadanou a volitelnou tovární třídou ...........................................................239

10.7 Možnost využití konstruktoru třídy ......................................................................... 240

10.8 Shrnutí – co jsme se naučili .................................................................................... 241

11. Návrhový vzor Stav – Robot4 .......................................................................... 243

11.1 Řešený problém ....................................................................................................... 243

11.2 Vozidla na šachovnici .............................................................................................. 244

11.3 Společné rozhraní otočných vozidel IVehicle ...................................................... 244

11.4 Různé chování v závislosti na směru ..................................................................... 245

11.5 Jednostavové třídy ................................................................................................... 245

11.6 Čtyřstavová třída ...................................................................................................... 246

11.7 Stavové rozhraní ...................................................................................................... 246

11.8 Definice jednostavových tříd ................................................................................... 247

11.9 Definice vícestavové třídy ....................................................................................... 251

11.10 Testovací třída .......................................................................................................... 255

11.11 Zásady použití vzoru Stav ....................................................................................... 257

11.12 Shrnutí – co jsme se naučili .................................................................................... 258

12. Návrhový vzor Stavitel – RingBuilder ............................................................. 260

12.1 Řešený problém ....................................................................................................... 260

12.2 Dvě skupiny požadavků na segment ...................................................................... 261

12.3 Definice segmentů ................................................................................................... 263

Nastavení barvy .................................................................................................................................264

Konstruktory ......................................................................................................................................265

Test správného vytvoření segmentů ...............................................................................................266

Přidání následníka .............................................................................................................................267

Potřebné atributy ...............................................................................................................................267

Zbylé metody .....................................................................................................................................268

12.4 Zdánlivý problém s viditelností segmentů ............................................................. 268

12.5 Definice dopravního okruhu .................................................................................... 269

Správa vytvořeného okruhu .............................................................................................................270

Zobrazení okruhu .........................................................................................................................270

Přizpůsobení se změně kroku plátna ...........................................................................................270

Oznámení startovního segmentu .................................................................................................270

Konstrukce okruhu ............................................................................................................................270

12.6 Návrhový vzor Stavitel ............................................................................................. 271

12.7 Definice stavitele – RingBuilder ............................................................................. 272

Atributy ...............................................................................................................................................272

Konstruktor ........................................................................................................................................273

Start stavby okruhu ...........................................................................................................................273

Zřetězení volání metod ......................................................................................................................274

Pokračování ve stavbě okruhu.........................................................................................................274

Ukončení stavby okruhu ...................................................................................................................274

Test stavby okruhů ............................................................................................................................275

12.8 Ověřování podmínek ................................................................................................ 276


14 Java 8 – Úvod do objektové architektury pro mírně pokročilé

12.9 Test vyhazování výjimky .......................................................................................... 276

12.10 Dokončení definice okruhu ..................................................................................... 278

Nastavení políčkové pozice ............................................................................................................. 278

Prozrazení políčkového rozměru .................................................................................................... 278

Přizpůsobení se změně kroku plátna .............................................................................................. 279

12.11 Extrakce části kódu do samostatné metody .......................................................... 279

12.12 Test vybudovaného okruhu ..................................................................................... 281

12.13 Továrna na okruhy ................................................................................................... 282

12.14 Shrnutí – co jsme se naučili .................................................................................... 283

13. Návrhový vzor Dekorátor – SmoothVehicle ..................................................... 284

13.1 Modifikace chování skupiny objektů ...................................................................... 284

13.2 Plynule posuvná vozidla .......................................................................................... 285

13.3 Definice dekorující třídy ........................................................................................... 285

Delegát a konstruktory ..................................................................................................................... 290

Implementace metod pro porovnání objektů ................................................................................. 290

Implementace zbylých metod .......................................................................................................... 291

Ještě trochu kosmetiky .................................................................................................................... 291

13.4 Definice těla metody goForward() .......................................................................... 292

13.5 Doplnění metody delegující zodpovědnost na atribut .......................................... 293

13.6 Přidání vlastnosti ...................................................................................................... 294

13.7 Dokončení úprav ...................................................................................................... 296

13.8 Test ............................................................................................................................ 296

13.9 Princip vzoru Dekorátor ........................................................................................... 297

13.10 Shrnutí – co jsme se naučili .................................................................................... 298

14. Implicitní implementace – RingVehicle, ControlledVehicle ......................... 300

14.1 Dekorátor přidávající další funkčnost .................................................................... 300

14.2 Třída Multimover a interfejs IMultiMovable ........................................................... 301

14.3 Definice třídy RingVehicle ....................................................................................... 301

14.4 Implicitní definice metod interfejsu ........................................................................ 302

14.5 Statické metody definované v interfejsu ................................................................ 305

14.6 Šablona interfejsů .................................................................................................... 306

14.7 Čím se liší interfejs od třídy ..................................................................................... 306

14.8 Výhody implicitní implementace ............................................................................. 307

14.9 Úprava interfejsu IVehicle ...................................................................................... 307

14.10 Doplnění konstruktorů továrních objektů .............................................................. 308

14.11 Rozšíření interfejsu IVehicleFactory .................................................................... 309

Test ..................................................................................................................................................... 311

14.12 Pokračování definice přesunu ................................................................................ 312

14.13 Vypuštění vozidla na okruh ..................................................................................... 312

14.14 Test ............................................................................................................................ 313

14.15 Vozidlo ovládané z klávesnice ................................................................................ 314

14.16 Návrhový vzor Adaptér (Adapter) ........................................................................... 315

14.17 Návrh třídy ControlledVehicle ............................................................................... 315

14.18 Přebití implicitních definic ....................................................................................... 316

14.19 Testování ................................................................................................................... 316

Mechanismus reakce na klávesnici ................................................................................................ 317

14.20 Shrnutí – co jsme se naučili .................................................................................... 318

15. Generické datové typy a metody ...................................................................... 320

15.1 Motivace .................................................................................................................... 320

15.2 Generické a parametrizované datové typy ............................................................. 324


Podrobný obsah 15

15.3 Definice generických typů ....................................................................................... 326

15.4 Použití generických typů ......................................................................................... 328

15.5 Rizika nepoužití typových parametrů ..................................................................... 330

15.6 Varování překladače a jejich potlačení ................................................................... 333

Proč vypínat varování .......................................................................................................................334

15.7 Překlad generických datových typů a očišťování ................................................. 335

15.8 Omezení typových atributů na instanční členy ..................................................... 336

15.9 Generické metody .................................................................................................... 336

15.10 Shrnutí – co jsme se naučili .................................................................................... 340

16. Pokročilejší práce s typovými parametry ........................................................ 342

16.1 Omezení typových parametrů ................................................................................. 342

16.2 Typové parametry s více předky ............................................................................. 343

16.3 Potomci a předci generických typů ........................................................................ 344

16.4 Žolíky ......................................................................................................................... 344

16.5 Příklad: datový typ Interval<T extends Comparable<? super T>> ................... 346

16.6 Ternární operátor ?: – podmíněný výraz ............................................................... 351

16.7 Definice parametrizovaného datového typu .......................................................... 352

Grupy ..................................................................................................................................................353

Deklarace IGroup<B, G extends IGroup ...........................................................................354

Definice třídy DirectionGroup ..........................................................................................................354

Na co potřebujeme interfejs IGroup.................................................................................................356

16.8 Shrnutí – co jsme se naučili .................................................................................... 356

17. Funkční interfejsy a lambda-výrazy ................................................................. 358

17.1 Motivace .................................................................................................................... 358

17.2 Funkční interfejs (functional interface) .................................................................. 359

17.3 Lambda-výrazy ......................................................................................................... 362

17.4 Použití lambda výrazů v programu ......................................................................... 363

17.5 Předčasné zhasínání ................................................................................................ 365

Metoda stopBlinking() ....................................................................................................................365

Modifikátor volatile a synchronizace vláken ...............................................................................366

Test ukončení neexistujícího blikání – testWrongStopBlinking() ..............................................367

Reakce na ukončení blikání..............................................................................................................367

Test správné reakce na předčasné spuštění ..................................................................................368

Test korektního ukončení blikání – testStoppedMovingAndBlinking() ......................................369

17.6 Alternativní definice funkčních objektů ................................................................. 370

17.7 Světlo umožňující ovlivnit tvar žárovky ................................................................. 372

Získání žárovky ..................................................................................................................................373

Požadavky na typ žárovky ................................................................................................................373

Uložení žárovky .................................................................................................................................374

Uložení továrního objektu .................................................................................................................375

Upravená definice třídy Light ..........................................................................................................375

Testy ...................................................................................................................................................375

17.8 Generická verze třídy – třída

LightG <B extends IChangeable & IColorable> ................................................. 379

Důsledky definice třídy LightG jako generické ..............................................................................380

17.9 Sjednocení definic otoček robota ........................................................................... 381

17.10 Shrnutí – co jsme se naučili .................................................................................... 383

18. Rekurzivní volání ............................................................................................... 386

18.1 Princip ....................................................................................................................... 386

18.2 Přímá a nepřímá rekurze .......................................................................................... 387

18.3 Přeplnění zásobníku návratových adres ................................................................ 388

18.4 Pojezdy tam zpět – metoda zigZag ......................................................................... 388

+


16 Java 8 – Úvod do objektové architektury pro mírně pokročilé

1. Úkol ................................................................................................................................................ 389

2. Otočka ............................................................................................................................................ 389

3. Délka pojezdu .......................................................................



       
Knihkupectví Knihy.ABZ.cz - online prodej | ABZ Knihy, a.s.
ABZ knihy, a.s.
 
 
 

Knihy.ABZ.cz - knihkupectví online -  © 2004-2019 - ABZ ABZ knihy, a.s. TOPlist