OOP(s)

Object Orientated Programming
Classes and Instances
Inheritance
Encapsulation


1 / 16
suivant
Slide 1: Diapositive
PRMMBOStudiejaar 1

Cette leçon contient 16 diapositives, avec diapositives de texte.

time-iconLa durée de la leçon est: 60 min

Éléments de cette leçon

Object Orientated Programming
Classes and Instances
Inheritance
Encapsulation


Slide 1 - Diapositive

OOP
Wat is het?
Een van de meest voorkomende manieren van programmeren.
Systeem is een collectie aan objecten.
Objecten bevatten Methods en properties.
Objecten delen public onderdelen van zichzelf maar behouden hun eigen en private state.

Slide 2 - Diapositive

Classes and Instances
Classes zijn objecten.
Iedere unieke creatie van een class noemen we een instantie (instance).
Het proces van een nieuwe instantie maken gaat via de constructor.




Slide 3 - Diapositive

Constructor
Speciale functie met dezelfde naam als de class.
Deze functie wordt automatisch uitgevoerd wanneer een nieuwe instantie van de class wordt aangemaakt.
Het is mogelijk informatie mee te geven aan de constructor zodat de instantie deze informatie gebruikt om zijn eigen state te beheren.

Slide 4 - Diapositive

Voorbeeld
(psuedo-code)
Blueprint van Professor class.
Heeft 2 properties die een waarde krijgen door de constructor.
2 Methodes die uitgevoerd kunnen worden de instantie.

Slide 5 - Diapositive

Voorbeeld
Hier worden 2 instanties van professor gemaakt.
Properties en Methods van de instantie worden gecalled met [Instantie].Method/Property.
Zo krijg je de waarde terug of kan je hem aanpassen.

Slide 6 - Diapositive

Inheritance
Super/Parent/Base class.
Nieuwe objecten worden gebasseerd op deze class.
De nieuwe class kan dan properties en methods van deze class overnemen.
Nieuwe class is ook een instantie van de parent class.

Slide 7 - Diapositive

Voorbeeld
(Psuedo-code)
We maken nu een student class aan.
Student heeft net zoals professor een introduceSelf method en een name property.

Slide 8 - Diapositive

Voorbeeld
Parent class "Person" aanmaken.
Student en professor zijn allebei een persoon.
Parent class heeft overeenkomende properties/methods van student en professor.

Slide 9 - Diapositive

Voorbeeld
Professor en Student kunnen nu erven van Person.
Hierdoor krijgen ze toegang tot de properties en methods vanuit Person.
Ze kunnen deze methods en properties ook overschrijven.
Hierdoor kunnen ze alsnog unieke acties uitvoeren.

Slide 10 - Diapositive

Voorbeeld
Person is nu de super of parent class.
Professor en Person zijn subclasses of child classes.
introduceSelf wordt 3 keer gedefinieerd omdat iedere class zichzelf anders voorstelt.
Wanneer dit gebeurt noemen we dat Override.

Slide 11 - Diapositive

Voorbeeld
Hier zie je een instantie van een professor en van een student.
Deze tellen allebei ook als Person.
Beide instanties kunnen de introduceSelf functie callen maar hebben er andere waardes aan gegeven.
We kunnen ook alleen een Person instantieren.
Deze heeft dan geen toegang tot de properties en methods van de child classes.

Slide 12 - Diapositive

Encapsulation
Verschil tussen public interface en private internal state.
Public interface is code die gebruikt mag worden door andere instanties. Zo kan je dus methods of properties aanroepen.
Private internal state is code die alleen door de eigen instantie gebruikt en aangepast mogen worden.
In de meeste talen wordt dit aangegeven met het keyword private of public.
Dit verminderd de complexiteit van een object en voegt extra veiligheid toe.

Slide 13 - Diapositive

Voorbeeld
Student heeft een extra method gekregen. Deze returned true wanneer de student langer dan 1 jaar op school zit.
Nu hoeven we niet het jaar van een student te checken vanaf buiten. Student doet dat nu zelf.

Slide 14 - Diapositive

Voorbeeld
year is nu een private property.
Hierdoor kan alleen de student zelf bij z'n jaar. De waarde van jaar wordt gedefinieerd met de constructor.
introduceSelf en canStudyArchery zijn nog public en kunnen gebruikt worden door andere objecten.

Slide 15 - Diapositive

Opdracht
Maak het voorbeeld na. Dit mag in de gewenste programmeertaal.
Maak een "Person" parent class met overeenkomende properties en methodes.
Maak ook een "Professor" en "Student" class.
Deze kunnen zich allebei introduceren en hebben een naam.
De student heeft ook een studiejaar.
De professor heeft ook een vak (property) dat hij geeft en een method om een toets na te kijken.

Slide 16 - Diapositive