Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Inhoud

  1. Introductie
  2. Installatie en Tools
  3. Je eerste Java‑programma
  4. Basis Syntax
  5. Variabelen en Datatypen
  6. Operators en Expressies
  7. Controle structuren (if/switch)
  8. Lussen (for/while)
  9. Methoden en Parameters
  10. Arrays en Strings
  11. Klassen en Objecten
  12. Overerving en Polymorfisme
  13. Collecties en Generics
  14. Foutenafhandeling (Exceptions)
  15. Best Practices

Hoofdstuk 1 — Oefeningen Introductie

In deze oefeningen leer je de basis van het compileren en uitvoeren, en schrijf je je eerste kleine programma’s.

  • Java-versie: 21 (LTS)
  • Doelgroep: absolute beginners

Opgaven:

  1. Hallo Wereld Schrijf een programma dat "Hallo, wereld!" print.

  2. Meerdere Regels Print drie regels tekst, elk met System.out.println.

  3. Eenvoudige Rekensom Declareer twee int-variabelen en print hun som, verschil, product en deling.

  4. Concatenatie Combineer twee String-variabelen tot één zin en print die.

  5. Commentaar Schrijf een programma met één regel commentaar en één blokcommentaar. Leg in de commentaren uit wat het programma doet.

  6. Unicode/Emoji Print een tekst met een Unicode-emoji (bijv. 600) en je naam.

Zie ook de Java-bestanden met TODO’s in chapter_1/.

Hoofdstuk 2 — Oefeningen Installatie en Tools

In dit hoofdstuk oefen je met je ontwikkelomgeving (Java 21) en het compileren/uitvoeren van programma’s.

Opgaven:

  1. Controleer je JDK-versie.

    • Voer uit in je terminal: java -version en javac -version.
    • Schrijf in een tekstblok wat de uitvoer is en of het Java 21 betreft.
  2. Maak een nieuw bestand Hallo.java en compileer het met javac Hallo.java. Voer daarna uit met java Hallo.

    • Verwachte output: Hallo, wereld!
  3. Activeer linting/inspections in je IDE (IntelliJ IDEA Community) en los de waarschuwingen op in een klein programma.

  4. Pas de project-encoding aan naar UTF-8 en toon een emoji in de console.

  5. Maak kennis met documentatie: open de Java API docs en zoek String op. Noteer drie nuttige methoden.

Zie de Java-bestanden in deze map voor startbestanden en TODO’s.

Hoofdstuk 3 — Oefeningen Je eerste Java‑programma

Opgaven:

  1. Schrijf een klasse Hello met een main die "Hallo, wereld!" print.
  2. Maak een programma dat je naam en leeftijd print in één zin.
  3. Print de som van drie getallen die je in de code definieert.
  4. Maak een methode groet(String naam) en roep die tweemaal aan.
  5. Experimenteer met System.out.print versus println.

Hoofdstuk 4 — Oefeningen Basis Syntax

Opgaven (Java 21):

  1. Puntkomma en blokken
  • Schrijf een programma dat twee variabelen optelt binnen een binnenblok {} en het resultaat buiten het blok probeert te gebruiken. Observeer de compileerfout en los het op.
  1. Naamconventies
  • Maak een klasse NaamConventiesOef met een constante MAX_ITEMS en een variabele minimumItems. Print beide.
  1. If/else en scope
  • Lees een score (int) in. Print "Geslaagd" als score ≥ 60, anders "Gezakt". Probeer een variabele uit het if‑blok buiten dat blok te gebruiken en fix de fout netjes.
  1. Switch‑expressie
  • Vraag de gebruiker om een dagnummer (1–7) en print de dagnaam met een switch‑expressie met pijl‑syntaxis.
  1. Lussen vormen
  • Print met for, while en do-while de getallen 0 t/m 2.
  1. Methoden
  • Schrijf een methode int som(int a, int b) en print het resultaat van som(4, 5).
  1. Tekst en escaping
  • Print een pad met backslashes (bijv. C:\Users\Jij) en een zin met aanhalingstekens.
  1. Fouten herkennen
  • Maak bewust een hoofdletterfout (system.out.println) en herstel die.

Zie de Java‑bestanden in chapter_4/ voor TODO‑skeletten.

Hoofdstuk 5 — Oefeningen Variabelen en Datatypen

Opgaven:

  1. Primitieven en literalen
  • Declareer variabelen van type int, double, boolean, char, long (met L-suffix), float (met f-suffix). Print ze op één regel.
  1. Casting en overflow
  • Cast een int met waarde 130 naar byte en observeer het resultaat. Print ook een cast van double 3.9 naar int.
  1. Strings en immutability
  • Maak een String en roep toUpperCase() aan. Print zowel de originele als de nieuwe String.
  1. StringBuilder
  • Bouw een zin op met StringBuilder door drie woorden te appenden en print het resultaat.

Zie de Java-bestanden in chapter_5/ voor TODO-skeletten.

Hoofdstuk 6 — Oefeningen Operators en Expressies

Opgaven:

  1. Rekenoperatoren
  • Schrijf berekeningen met +, -, *, /, % en print de resultaten.
  1. Vergelijkingen en logica
  • Vergelijk twee getallen met >, ==, != en combineer booleans met && en ||.
  1. Ternary
  • Maak een variabele score en print "Geslaagd" of "Gezakt" met de ?:-operator.

Zie Java-bestanden in chapter_6/.

Hoofdstuk 7 — Oefeningen Controlestructuren

Opgaven:

  1. If/else
  • Lees een score (hardcode of via args) en print beoordeling (≥90: Uitmuntend, ≥75: Goed, ≥60: Voldoende, anders Onvoldoende).
  1. Switch-expressie
  • Vraag om een dagnummer (hardcode oké) en geef de dagnaam terug met een switch-expressie. Gebruik desnoods yield bij een blok.

Zie Java-bestanden in chapter_7/.

Hoofdstuk 8 — Oefeningen Lussen

Opgaven:

  1. For-lus
  • Print de getallen 1 t/m 5 op één regel gescheiden door spaties.
  1. While-lus
  • Tel terug van 3 naar 1 met een while-lus.
  1. Foreach
  • Itereer over een array van namen en print ze.

Zie Java-bestanden in chapter_8/.

Hoofdstuk 9 — Oefeningen Methoden

Hoofdstuk 10 — Oefeningen Arrays en Strings

Hoofdstuk 11 — Oefeningen Klassen en Objecten

Opgaven:

  1. Klasse Persoon
  • Maak een klasse Persoon met privéveld naam, constructor en methode groet(). Voeg getters/setters toe.
  1. Punt en afstand
  • Maak een klasse Punt(x,y) en een methode afstandTot(Punt ander) die de Euclidische afstand teruggeeft (double).
  1. BankRekening
  • Implementeer BankRekening met private saldo, stort, neemOp met validaties. Print saldo.
  1. toString/equals
  • Maak een Product(naam, prijs) en overschrijf toString. Maak een Kaart(soort, rang) en overschrijf equals/hashCode.

Zie Java-bestanden in chapter_11/ voor TODO-skeletten.

Hoofdstuk 12 — Oefeningen Overerving en Polymorfisme

Opgaven:

  1. Dierenhiërarchie
  • Maak een Dier-basis met maakGeluid(). Implementeer Hond en Kat die overschrijven. Schrijf een methode die een Dier accepteert en het geluid afspeelt.
  1. Vorm en super
  • Maak Vorm met beschrijf(). Laat Cirkel erven en voeg straal toe. Gebruik super in beschrijf().
  1. Interface Betaalbaar
  • Definieer Betaalbaar met betaal(double). Implementeer twee varianten en roep ze polymorf aan.

Hoofdstuk 13 — Oefeningen Collecties en Generics

Opgaven:

  1. Lijst en sorteren
  • Maak een List<String> met namen. Sorteer alfabetisch en op lengte met een Comparator.
  1. Set zonder dubbelen
  • Voeg meerdere getallen toe met dubbelen aan een Set<Integer> en print het resultaat.
  1. Map tellen
  • Tel frequenties van woorden in een array met een Map<String,Integer>.
  1. Generieke methode
  • Schrijf static <T> void printAlle(Collection<T>) en demonstreer met List/Set.

Hoofdstuk 14 — Oefeningen Exceptions

Opgaven:

  1. Delen door nul vangen
  • Schrijf code met try/catch die delen door nul opvangt en een bericht toont.
  1. Validatie en custom exception
  • Maak een OngeldigBedragException (unchecked) en gebruik die in een Rekening.neemOp.
  1. Try-with-resources
  • Lees de eerste regel uit een bestand met BufferedReader in een try-with-resources-blok.

Hoofdstuk 15 — Oefeningen Best Practices

Opgaven:

  1. Refactor
  • Neem een eerder programma en splits een lange methode op in kleinere, duidelijke methoden.
  1. Immutability
  • Maak een kleine klasse met final velden en zonder setters; gebruik een constructor voor initialisatie.
  1. Documentatie
  • Voeg JavaDoc toe aan een publieke methode en gebruik duidelijke namen en commentaar waar nodig.