OOP(s)

Object Orientated Programming
Classes and Instances
Inheritance
Encapsulation


1 / 16
volgende
Slide 1: Tekstslide
PRMMBOStudiejaar 1

In deze les zitten 16 slides, met tekstslides.

time-iconLesduur is: 60 min

Onderdelen in deze les

Object Orientated Programming
Classes and Instances
Inheritance
Encapsulation


Slide 1 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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

Slide 8 - Tekstslide

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

Slide 9 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide