java training

Inhoudsopgave cursusboek Java 11 Fundamentals

Hoofdstuk1: Inleiding

1.1 De geschiedenis van Java

1.2 Java als programmeertaal

1.2.1 Soorten programmeertalen

1.2.1.1 Gecompileerde programmeertalen

1.2.1.2 Geïnterpreteerde programmeertalen

1.2.2 Java versus andere programmeertalen

1.2.3 Kenmerken van Java als programmeertaal

1.3 Java als platform

1.4 Soorten Java-toepassingen

1.5 Samenvatting

Hoofdstuk2: De Java Development Kit

2.1 Inleiding

2.2 JDK en documentatie

2.3 De omgevingsvariabele JAVA_HOME

2.4 Ontwikkelomgevingen

2.5 Samenvatting

Hoofdstuk3: Mijn eerste Java-toepassing

3.1 Inleiding

3.2 De broncode schrijven

3.3 De broncode compileren

3.4 De bytecode uitvoeren

3.5 De opbouw van het programma

3.5.1 Commentaar in Java-code

3.5.2 Het pakket definiëren

3.5.3 De klasse definiëren

3.5.4 De methode main()

3.5.5 Het eigenlijke werk

3.6 Samenvatting

Hoofdstuk4: Programmatielogica

4.1 Inleiding

4.2 Sequenties

4.3 Invoer en uitvoer

4.4 Keuzes

4.5 Herhalingen

4.6 Samenvatting: programmeeralgoritmen

Hoofdstuk5: De Java-programmeertaal

5.1 Inleiding

5.2 Variabelen en letterlijke waarden

5.2.1 De declaratie van variabelen

5.2.2 Het datatype

5.2.2.1 Het primitieve datatype

5.2.2.2 Het referentietype

5.2.2.3 Afleiding van het datatype voor lokale variabelen

5.2.3 Literals

5.2.3.1 Boolean-literals

5.2.3.2 Karakter-literals

5.2.3.3 Literals voor gehele getallen

5.2.3.4 Floating point literals

5.2.3.5 String literals

5.2.4 De naam

5.2.5 Final variables of constanten

5.2.6 Typeconversie

5.3 Operatoren

5.3.1 Rekenkundige operatoren

5.3.2 Relationele operatoren

5.3.3 Logische operatoren

5.3.4 Shift-operatoren

5.3.5 Bit-operatoren

5.3.6 Toekenningsoperatoren

5.3.7 Conditionele operatoren

5.3.8 Overige operatoren

5.3.9 Prioriteitsregels

5.4 Uitdrukkingen, statements en blokken

5.4.1 Uitdrukkingen

5.4.2 Statements

5.4.2.1 Uitdrukkings-statements

5.4.2.2 Declaratie-statements

5.4.2.3 Programmaverloop-statement

5.4.3 Codeblok

5.5 Programmaverloop-statements

5.5.1 Inleiding

5.5.2 Het if else statement

5.5.3 Het switch statement

5.5.4 Het while en do while statement

5.5.5 Het for statement of zelftellende lus

5.6 Methoden

5.7 Samenvatting

Hoofdstuk6: Objectgeoriënteerd programmeren

6.1 Inleiding

6.2 Inleiding in het objectgeoriënteerd programmeren

6.2.1 Objecten

6.2.1.1 Private en publieke eigenschappen

6.2.1.2 Private en publieke methoden

6.2.1.3 Voordelen van OOP

6.2.2 Boodschappen

6.2.3 Klassen

6.3 Werken met bestaande objecten

6.3.1 Inleiding

6.3.2 Objecten maken van een bestaande klasse

6.3.2.1 De creatie van het object

6.3.2.2 De initialisatie van het object

6.3.2.3 De declaratie en initialisatie van de referentievariabele

6.3.2.4 Pakketten importeren

6.3.3 Objecten gebruiken

6.3.3.1 Publieke eigenschappen gebruiken

6.3.3.2 Publieke methoden gebruiken

6.3.4 Objecten opruimen

6.4 Tekenreeksen

6.4.1 Inleiding

6.4.2 De klasse String

6.4.2.1 Eigenschappen

6.4.2.2 Constructors

6.4.2.3 Methoden

6.4.2.4 Geheugengebruik bij strings

6.4.3 De klasse StringBuilder

6.4.4 Strings samenvoegen met de + operator

6.4.5 Gegevens formatteren met de klasse Formatter

6.5 Samenvatting

Hoofdstuk7: Arrays

7.1 Inleiding

7.2 Arrays maken

7.3 Arrays gebruiken

7.4 De uitgebreide for-lus (for each)

7.5 Arrays van objecten

7.6 Arrays van arrays

7.7 Lookup tables

7.8 Methoden met een variabel aantal parameters

7.9 Samenvatting

Hoofdstuk8: Klassen definiëren

8.1 Inleiding

8.2 De declaratie van de klasse

8.3 De klassenomschrijving (body)

8.3.1 Eigenschappen

8.3.2 Methoden

8.3.2.1 Declaratie van methoden

8.3.2.2 De body van de methode

8.3.2.3 Gegevens doorgeven aan een methode

8.3.2.4 Waarden teruggeven via een methode

8.3.2.5 Method name overloading

8.3.3 Constructors

8.3.4 Instance members en class members

8.3.4.1 Instance-variabelen

8.3.4.2 Klassenvariabelen

8.3.4.3 Instance-methoden

8.3.4.4 Klassenmethoden

8.3.5 De klasse Math

8.4 Samenvatting

Hoofdstuk9: Associaties

9.1 Inleiding

9.2 Associaties

9.3 Aggregaties

9.4 Composities

9.5 High cohesion

9.6 Samenvatting

Hoofdstuk10: Overerving en klassenhiërarchie

10.1 Inleiding

10.1.1 Subklassen en superklassen

10.1.2 Overerving

10.1.2.1 Overerven

10.1.2.2 Toevoegen

10.1.2.3 Vervangen

10.1.3 Klassenhiërarchie

10.1.4 Abstracte klassen

10.2 Subklassen definiëren in Java

10.3 Eigenschappen van subklassen

10.3.1 Overerven van eigenschappen

10.3.2 Toevoegen van eigenschappen

10.3.3 Vervangen (verbergen) van eigenschappen

10.4 Methoden van subklassen

10.4.1 Overerven van methoden

10.4.2 Toevoegen van methoden

10.4.3 Vervangen van methoden (override)

10.4.4 Polymorfisme

10.5 Constructors van subklassen

10.6 Klasseneigenschappen en klassenmethoden

10.7 Final-klassen en methoden

10.8 Abstracte klassen

10.9 De superklasse Object

10.9.1 Klassenhiërarchie

10.9.2 De operator instanceof

10.9.3 Methoden van de Object-klasse

10.9.3.1 toString()

10.9.3.2 equals() en hashCode()

10.10 Polymorfisme (bis)

10.11 Code hergebruik: overerving versus associaties

10.12 Samenvatting

Hoofdstuk11: De opsomming

11.1 Inleiding

11.2 Eigenschappen, methoden en constructors

11.3 Samenvatting

Hoofdstuk12: Eenvoudige klassen

12.1 Inleiding

12.2 Wrappers voor primitieve datatypes

12.2.1 Wrapper-klassen

12.2.2 Autoboxing

12.2.3 Static members

12.3 Datums en tijden

12.3.1 Inleiding

12.3.2 Computertijden: de klasse Instant

12.3.3 Menselijke datums en tijden

12.3.3.1 Opsommingstypes voor weekdagen en maanden

12.3.3.2 Lokale datums en tijden

12.3.3.3 Tijdzones

12.3.3.4 Datums en tijden met tijdzones

12.3.4 Tijdsduur

12.3.5 Formattering van datums en tijden

12.3.6 Omzetting van en naar Date en Calendar

12.4 Samenvatting

Hoofdstuk13: Interfaces

13.1 Inleiding

13.2 Een interface definiëren

13.2.1 De declaratie van de interface

13.2.2 De beschrijving van de interface

13.3 Een interface implementeren in een klasse

13.4 Standaardmethoden

13.5 Statische methoden

13.6 De interface als datatype

13.7 Samenvatting

Hoofdstuk14: Geneste en anonieme klassen

14.1 Inleiding

14.2 Gewone geneste klassen (inner classes)

14.3 Lokale geneste klassen (local inner classes)

14.4 Anonieme geneste klassen (anonymous inner classes)

14.5 Static geneste klassen (static nested classes)

14.6 Samenvatting

Hoofdstuk15: Exception handling

15.1 Inleiding

15.2 Exceptions afhandelen

15.2.1 Een exception veroorzaken

15.2.2 Een exception opvangen

15.2.3 Meerdere exceptions opvangen

15.2.4 Gemeenschappelijke exception handlers

15.2.5 Het finally blok

15.3 Exceptions genereren

15.3.1 Het throw-statement

15.3.2 Exceptions bij vervangen methoden

15.4 Soorten exceptions

15.4.1 Exceptions versus errors

15.4.2 Checked exceptions versus runtime exceptions

15.4.2.1 Checked exceptions

15.4.2.2 Runtime exceptions

15.5 Zelf een exception-klasse maken

15.6 Exceptions opvangen, inpakken en verder gooien

15.7 Samenvatting

Hoofdstuk16: Javadoc

16.1 Inleiding

16.2 Javadoc tags

16.2.1 Documentatie van klassen en interfaces

16.2.2 Documentatie van eigenschappen

16.2.3 Documentatie van methoden en constructors

16.2.4 Documentatie van pakketten

16.2.5 Overzichtsdocumentatie

16.3 JAVADOC-tool

16.4 Samenvatting

Hoofdstuk17: Generieken

17.1 Inleiding

17.2 Generieke klassen

17.2.1 Generieken definiëren

17.2.2 Het gebruikte type inperken

17.2.3 Onbepaald type

17.2.4 Subklassen van generieke klassen

17.3 Generieke interfaces

17.4 Generieke methoden

17.4.1 Formele generieke parameters

17.4.2 Formele generieke parameters met wildcards

17.4.3 Formele generieke parameters met bounded wildcards

17.4.4 Type-parameters

17.5 Achter de schermen van de generieken

17.6 Arrays en generieken

17.7 Samenwerking tussen oude en nieuwe code

17.8 Samenvatting

Hoofdstuk18: Lambda Expressions

18.1 Inleiding

18.2 Functionele interfaces

18.3 Definitie van lambda expressions

18.4 Methodereferenties

18.4.1 Statische methoden van een klasse of interface

18.4.2 Methoden van een gebonden object

18.4.3 Methoden van een ongebonden object

18.4.4 Constructorreferenties

18.5 Standaard functionele interfaces

18.5.1 Predicate<T>

18.5.2 Function<T ,R>

18.5.3 Consumer<T>

Hoofdstuk19: Streaming API

19.1 Inleiding: interne versus externe iteraties

19.2 Bron van streams

19.3 Bewerkingen

19.3.1 Eindbewerkingen

19.3.1.1 Consumerende bewerkingen

19.3.1.2 Reducerende bewerkingen

19.3.1.3 Collecteren

19.3.2 Tussenliggende bewerkingen

19.3.2.1 Filters

19.3.2.2 Omzetting

19.3.2.3 Sortering

19.4 Samenvatting

Hoofdstuk20: Collections

20.1 Het Collections Framework

20.2 De interface Collection en implementaties

20.2.1 List

20.2.1.1 ArrayList

20.2.1.2 LinkedList

20.2.2 Set

20.2.2.1 HashSet

20.2.2.2 LinkedHashSet

20.2.3 SortedSet & NavigableSet

20.2.3.1 TreeSet

20.2.4 Queue

20.2.4.1 LinkedList

20.2.4.2 PriorityQueue

20.2.5 Deque

20.2.6 Vergelijking tussen de implementaties

20.2.7 Het sorteren van verzamelingen

20.2.7.1 Intrinsieke sortering

20.2.7.2 Eenmalig sorteren van een List

20.2.8 Collections en streams

20.3 De interface Map en implementaties

20.3.1 Map

20.3.1.1 HashMap

20.3.1.2 LinkedHashMap

20.3.2 SortedMap & NavigableMap

20.3.2.1 TreeMap

20.3.3 Vergelijking tussen de implementaties

Hoofdstuk21: Lezen en schrijven (I/O)

21.1 Inleiding

21.2 Mappen en bestanden

21.2.1 De interface Path

21.2.2 De klasse FileSystem

21.2.3 De klasse Files

21.2.4 De klasse File

21.3 IO-streams

21.3.1 Character streams

21.3.1.1 Tekst schrijven naar een bestand

21.3.1.2 Tekst lezen van een bestand

21.3.1.3 Tekst lezen met een Processing Stream

21.3.2 Byte streams

21.3.2.1 Binaire gegevens schrijven naar een bestand

21.3.2.2 Binaire gegevens lezen van een bestand

21.3.2.3 Codering en karaktersets

21.4 Object Serialization

21.4.1 Objecten serialiseren en deserialiseren

21.4.2 Klassen serialiseerbaar maken

21.4.3 Transiënte variabelen

21.4.4 Het serialisatiemechanisme aanpassen

21.4.5 Serialisatie en overerving

21.4.6 Versienummering

21.5 Programma-attributen

Hoofdstuk22: Java via de commandolijn

22.1 Inleiding

22.2 Compileren

22.3 Modules maken

22.3.1 Inleiding

22.3.2 Een module definiëren

22.3.3 Pakketten exporteren

22.3.4 Afhankelijkheden van andere modules

22.3.5 Transitieve afhankelijkheden

22.3.6 Automatische modules

22.4 JAR-bestanden maken

22.4.1 Basisprincipes van een JAR

22.4.2 Een JAR-bestand maken

22.4.3 Een JAR-bestand opnemen in het modulepad

22.4.4 Resources uit een JAR-bestand lezen.

22.5 Programma's uitvoeren

22.6 Automatische modules

22.7 Linken

Hoofdstuk23: Systeembronnen gebruiken

23.1 Inleiding

23.2 De System-klasse

23.2.1 Standaard-I/O streams

23.2.1.1 Standaard-inputstream

23.2.1.2 Standaard-outputstream

23.2.1.3 De standaard-errorstream

23.2.1.4 De klasse Console

23.2.2 Systeemeigenschappen

23.2.3 Overige methoden

23.3 Het Runtime object

23.4 De ProcessBuilder

Hoofdstuk24: Multithreading

24.1 Inleiding: multiprocessing en multithreading

24.2 Een nieuwe thread creëren

24.2.1 Subklasse van de klasse Thread

24.2.2 De interface Runnable

24.2.3 Thread met lambda expression

24.3 De levenscyclus van threads

24.4 De uitvoering van threads in de toestand RUNNABLE

24.4.1 De scheduler

24.4.2 Prioriteiten van threads

24.4.3 Preëmptieve multitasking

24.4.4 Coöperatieve multitasking

24.5 Daemon threads

24.6 De wachttoestand

24.6.1 De slaaptoestand

24.6.2 Wachten op de beëindiging van een andere thread

24.7 Synchronisatie van threads (monitoring)

24.7.1 Object locking

24.7.2 Wait() en notify()

24.8 De Timer-klasse en de TimerTask-klasse

24.9 Concurrency framework

24.9.1 Concurrent collections

24.9.2 Atomaire objecten

24.9.3 Callable, ExecutorService and Future

24.10 Parallellisme met streams

Hoofdstuk25: Grafische applicaties met JavaFX

25.1 Inleiding

25.2 Installie van JavaFX

25.3 Mijn eerste JavaFX-toepassing

25.4 FXML

25.5 Stage, Scenes en Nodes

25.6 Model View Controller

25.7 Controls

25.7.1 Label

25.7.2 TextField en PasswordField

25.7.3 Button

25.7.4 CheckBox

25.7.5 RadioButton

25.7.6 ChoiceBox

25.7.7 ComboBox

25.7.8 ListView

25.7.9 Slider

25.7.10 ScrollBar

25.7.11 DatePicker

25.7.12 ColorPicker

25.8 Layout met Panes

25.8.1 BorderPane

25.8.2 HBox

25.8.3 VBox

25.8.4 GridPane

25.8.5 FlowPane

25.8.6 TilePane

25.8.7 AnchorPane

25.8.8 ScrollPane

25.8.9 Combinatie van panes

25.9 Menu's

25.10 Event Handling

25.11 Tekenen met Canvas

25.12 Cascading Style Sheets (CSS)

25.12.1 CSS-bestanden

25.12.2 Selectors

25.12.2.1 Class selectors

25.12.2.2 ID selectors

25.12.2.3 Selectors voor pseudoklassen

25.12.2.4 Root selector

25.12.3 Stijlkenmerken via code instellen

25.13 Dialoogvensters

25.13.1 Alert

25.13.2 TextInputDialog

25.13.3 FileChooser

25.14 Samenvatting

Java Get Powered