Inhoud
- Introductie
- Installatie en Tools
- Je eerste Java‑programma
- Basis Syntax
- Variabelen en Datatypen
- Operators en Expressies
- Controle structuren (if/switch)
- Lussen (for/while)
- Methoden en Parameters
- Arrays en Strings
- Klassen en Objecten
- Overerving en Polymorfisme
- Collecties en Generics
- Foutenafhandeling (Exceptions)
- 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:
-
Hallo Wereld Schrijf een programma dat "Hallo, wereld!" print.
-
Meerdere Regels Print drie regels tekst, elk met
System.out.println. -
Eenvoudige Rekensom Declareer twee int-variabelen en print hun som, verschil, product en deling.
-
Concatenatie Combineer twee
String-variabelen tot één zin en print die. -
Commentaar Schrijf een programma met één regel commentaar en één blokcommentaar. Leg in de commentaren uit wat het programma doet.
-
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:
-
Controleer je JDK-versie.
- Voer uit in je terminal:
java -versionenjavac -version. - Schrijf in een tekstblok wat de uitvoer is en of het Java 21 betreft.
- Voer uit in je terminal:
-
Maak een nieuw bestand Hallo.java en compileer het met
javac Hallo.java. Voer daarna uit metjava Hallo.- Verwachte output:
Hallo, wereld!
- Verwachte output:
-
Activeer linting/inspections in je IDE (IntelliJ IDEA Community) en los de waarschuwingen op in een klein programma.
-
Pas de project-encoding aan naar UTF-8 en toon een emoji in de console.
-
Maak kennis met documentatie: open de Java API docs en zoek
Stringop. Noteer drie nuttige methoden.
Zie de Java-bestanden in deze map voor startbestanden en TODO’s.
Hoofdstuk 3 — Oefeningen Je eerste Java‑programma
Opgaven:
- Schrijf een klasse Hello met een
maindie "Hallo, wereld!" print. - Maak een programma dat je naam en leeftijd print in één zin.
- Print de som van drie getallen die je in de code definieert.
- Maak een methode
groet(String naam)en roep die tweemaal aan. - Experimenteer met
System.out.printversusprintln.
Hoofdstuk 4 — Oefeningen Basis Syntax
Opgaven (Java 21):
- 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.
- Naamconventies
- Maak een klasse
NaamConventiesOefmet een constanteMAX_ITEMSen een variabeleminimumItems. Print beide.
- 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.
- Switch‑expressie
- Vraag de gebruiker om een dagnummer (1–7) en print de dagnaam met een switch‑expressie met pijl‑syntaxis.
- Lussen vormen
- Print met
for,whileendo-whilede getallen 0 t/m 2.
- Methoden
- Schrijf een methode
int som(int a, int b)en print het resultaat vansom(4, 5).
- Tekst en escaping
- Print een pad met backslashes (bijv.
C:\Users\Jij) en een zin met aanhalingstekens.
- 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:
- Primitieven en literalen
- Declareer variabelen van type
int,double,boolean,char,long(met L-suffix),float(met f-suffix). Print ze op één regel.
- Casting en overflow
- Cast een
intmet waarde 130 naarbyteen observeer het resultaat. Print ook een cast vandouble3.9 naarint.
- Strings en immutability
- Maak een
Stringen roeptoUpperCase()aan. Print zowel de originele als de nieuwe String.
- StringBuilder
- Bouw een zin op met
StringBuilderdoor 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:
- Rekenoperatoren
- Schrijf berekeningen met +, -, *, /, % en print de resultaten.
- Vergelijkingen en logica
- Vergelijk twee getallen met >, ==, != en combineer booleans met && en ||.
- Ternary
- Maak een variabele
scoreen print "Geslaagd" of "Gezakt" met de ?:-operator.
Zie Java-bestanden in chapter_6/.
Hoofdstuk 7 — Oefeningen Controlestructuren
Opgaven:
- If/else
- Lees een score (hardcode of via args) en print beoordeling (≥90: Uitmuntend, ≥75: Goed, ≥60: Voldoende, anders Onvoldoende).
- Switch-expressie
- Vraag om een dagnummer (hardcode oké) en geef de dagnaam terug met een switch-expressie. Gebruik desnoods
yieldbij een blok.
Zie Java-bestanden in chapter_7/.
Hoofdstuk 8 — Oefeningen Lussen
Opgaven:
- For-lus
- Print de getallen 1 t/m 5 op één regel gescheiden door spaties.
- While-lus
- Tel terug van 3 naar 1 met een while-lus.
- 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:
- Klasse Persoon
- Maak een klasse
Persoonmet privéveldnaam, constructor en methodegroet(). Voeg getters/setters toe.
- Punt en afstand
- Maak een klasse
Punt(x,y)en een methodeafstandTot(Punt ander)die de Euclidische afstand teruggeeft (double).
- BankRekening
- Implementeer
BankRekeningmetprivate saldo,stort,neemOpmet validaties. Print saldo.
- toString/equals
- Maak een
Product(naam, prijs)en overschrijftoString. Maak eenKaart(soort, rang)en overschrijfequals/hashCode.
Zie Java-bestanden in chapter_11/ voor TODO-skeletten.
Hoofdstuk 12 — Oefeningen Overerving en Polymorfisme
Opgaven:
- Dierenhiërarchie
- Maak een
Dier-basis metmaakGeluid(). ImplementeerHondenKatdie overschrijven. Schrijf een methode die eenDieraccepteert en het geluid afspeelt.
- Vorm en super
- Maak
Vormmetbeschrijf(). LaatCirkelerven en voeg straal toe. Gebruiksuperinbeschrijf().
- Interface Betaalbaar
- Definieer
Betaalbaarmetbetaal(double). Implementeer twee varianten en roep ze polymorf aan.
Hoofdstuk 13 — Oefeningen Collecties en Generics
Opgaven:
- Lijst en sorteren
- Maak een
List<String>met namen. Sorteer alfabetisch en op lengte met eenComparator.
- Set zonder dubbelen
- Voeg meerdere getallen toe met dubbelen aan een
Set<Integer>en print het resultaat.
- Map tellen
- Tel frequenties van woorden in een array met een
Map<String,Integer>.
- Generieke methode
- Schrijf
static <T> void printAlle(Collection<T>)en demonstreer met List/Set.
Hoofdstuk 14 — Oefeningen Exceptions
Opgaven:
- Delen door nul vangen
- Schrijf code met
try/catchdie delen door nul opvangt en een bericht toont.
- Validatie en custom exception
- Maak een
OngeldigBedragException(unchecked) en gebruik die in eenRekening.neemOp.
- Try-with-resources
- Lees de eerste regel uit een bestand met
BufferedReaderin een try-with-resources-blok.
Hoofdstuk 15 — Oefeningen Best Practices
Opgaven:
- Refactor
- Neem een eerder programma en splits een lange methode op in kleinere, duidelijke methoden.
- Immutability
- Maak een kleine klasse met
finalvelden en zonder setters; gebruik een constructor voor initialisatie.
- Documentatie
- Voeg JavaDoc toe aan een publieke methode en gebruik duidelijke namen en commentaar waar nodig.