T8. Objectgeoriënteerd Programmeren

Je leert objectgeoriënteerd programmeren. Dat is een manier van programmeren waarbij data en logica gebundeld zijn in objecten. We leren dit voor zowel JavaScript als C++.

Theorie

Opdrachten

Schrijf je in voor een opdracht en ga er mee aan de slag in GitHub code spaces.

Naslagmateriaal (ook beschikbaar bij toets)

Leerdoelen

  • Je weet wat het verschil is tussen een klasse en object.
  • Je weet wat attributen en methodes van objecten zijn.
  • Je weet wat inkapseling is.
  • Je kunt uitleggen wat het verschil is tussen private en public attributen en methodes en dit principe toepassen.
  • Je kunt op basis van een beschrijving in combinatie met stukje code beslissen welke attributen je private en welke je public zou maken.
  • Je weet wat getter- en setter-methodes zijn.
  • Je kunt een beargumenteerde keuze maken om voor een attribuut wel / niet gebruik te maken van getter en / of setter.
  • Je kunt zelf code voor getter- en settermethodes maken.
  • Je kunt uitleggen wat ‘overerving’ betekent en dit principe toepassen.
  • Je begrijpt de termen superklasse en subklasse.
  • Je begrijpt wat een abstracte klasse is.
  • Je kunt in JavaScript objectgeoriënteerde code lezen en schrijven (eerdere kennis wordt verondersteld).
  • Je kunt zelfstandig objectdiagrammen en (ontwerp)klassendiagrammen maken.
  • Je kunt een ontwerpklassendiagram maken met behulp van een beschrijving van systeem.
  • Je kunt een (ontwerp)klassendiagram omzetten naar JavaScript en andersom. Je bent hierbij in staat om relaties tussen klassen om te zetten naar code.
  • Je kent drie voordelen en drie nadelen van objectgeoriënteerd programmeren.

Oefentoets

Opfrissen Javascript

Voor het geval Javascript een beetje is weggezakt, is dit een manier om alles weer op te frissen: Ga naar KhanAcademy en probeer steeds de projects aan het einde van iedere onderwerp helemaal opnieuw te maken (dus eerst resetten). Als je vastloopt, verdiep je dan eerst in de theorie van dat onderwerpje en / of probeer eerst een eenvoudiger oefenopdrachtje van dat onderwerp te maken.

Vind je dit allemaal erg gemakkelijk? Open dan via deze link een leeg programma en programmeer een of meer van de volgende functies:

  • faculteit() - deze functie berekent de faculteit van de invoer. Dus 5! = 5 x 4 x 3 x 2 x 1 = 120
  • stippen vierkant - deze functie tekent een vierkant van 5 x 5 stippen met behulp van een geneste for-loop. Bonus: maak de functie zo, dat een parameter bepaald hoeveel stippen het vierkant breed is.
  • isPalindroom() - deze functie controleert of de meegegeven tekst een palindroom is.