OO Ontwerpen Samenvatting
H1: Objecten en klassen
1. Inleiding
• Objectgeoriënteerd werken sluit nauw aan bij de werkelijkheid
• Sleutelconcept: object
• Met ‘real-world’ objecten zijn we reeds vertrouwd
o Kunnen onderscheiden worden van elkaar
o Hebben eigenschappen
§ Kunnen benoemd worden
§ Hebben een waarde
• Kan veranderen
• Deze kunnen op zichzelf weerom een object zijn
o Hebben een gedrag
§ Omvat wat het object kan doen
§ Via uitvoeren van gedrag kunnen de eigenschappen van een object
veranderen
• ‘Real life’
o Complexe interactie tussen veranderende objecten
• Software objecten zijn een weerspiegeling van ‘real world’ objecten
o Ze kunnen onderscheiden worden
o Ze hebben eigenschappen
o Ze hebben gedrag
• Software toepassingen zijn gelijkaardig aan ‘real life’
o Complexe interactie tussen veranderende objecten
o Interactie tussen objecten
§ Een object kan een ander object vragen om iets te doen
• In werkelijkheid is abstractie essentiëel
o Niveau van detail
o Context
• Via abstractie ontstaan soorten of types van objecten
• Soortgelijke objecten hebben
o Dezelfde eigenschappen
o Hetzelfde gedrag
• Sleutelconcept: klasse
o Een klasse bevat de omschrijving van de eigenschappen en het gedrag van
soortgelijke objecten
o Is een abstractie
o Een object is een instantie van een klasse
• Tijdens software ontwikkeling
o Wordt nagedacht over objecten uit de werkelijkheid, hun gemeenschappelijke
eigenschappen en gedrag
o Worden klassen ontworpen
o Worden klassen geïmplementeerd
1
, OO-Ontwerpen Samenvatting
• Tijdens de uitvoering van de software
o Komen objecten tot leven
o Objecten worden gecreëerd, worden geconsulteerd, voeren operaties uit,
werken samen, veranderen, voeren taken uit, worden vernietigd,…
2. Objecten
• In de OO-wereld is alles een object. Een object wordt beschreven door een klasse. Een
object is een instantie van een klasse.
• Elk object heeft een toestand, een gedrag en een identiteit
o Toestand omvat
§ Alle eigenschappen van het object
§ De huidige waarde voor elk van deze eigenschappen
o De toestand van een object is omschreven in zijn klasse
§ Elke eigenschap wordt voorgesteld door een attribuut
§ Een attribuut bestaat uit een naam en een type.
• Type: het type bepaalt de mogelijke waarden voor deze
eigenschap
o Boolean: ja/nee
o Int: gehele getallen
o String: karakterstrings
o Flat: kommagetallen
o Double: kommagetallen
• Samengevat:
o Een object heeft een toestand
§ De toestand omvat alle eigenschappen van de klasse samen met de
actuele waarde
§ De toestand evolueert mogelijks met de tijd
§ De toestand kan gewijzigd of opgevraagd worden door gedrag
§ De toestand verschilt mogelijks van object tot object
o De toestand van een object wordt omschreven in zijn klasse
• Een object heeft een gedrag
o Diensten die het object aanbiedt
o Wat het object kan doen
• Objecten sturen boodschappen naar objecten
o Zo doet een object beroep op de dienst van een ander object
• Objecten ontvangen boodschappen van objecten
o Een object doet iets op vraag van een ander object
o Als reactie op ontvangen boodschap voert een object gedrag uit
2
, OO-Ontwerpen Samenvatting
• Elke dienst die een object aanbiedt wordt omschreven via een methode
o Elke methode beschrijft een welomlijnde, duidelijk afgebakende taak
• De klasse bevat de opsomming van alle methodes die objecten van die klasse aanbieden
• Het gedrag wordt gecodeerd en niet getoond in de klasse
• Een methode declaratie heeft
o Een naam
§ Een identifier
§ Een werkwoord in gebiedende wijs
o Eventuele parameter(s)
§ Laten toe extra informatie met een boodschap te versturen
§ Elke parameter heeft een naam en een type
o Eventueel returntype
§ Laten toe een resultaat terug te keren
§ We bepalen het type van de terugkeerwaarde
o Code die de reactie beschrijft
§ = implementatie
• We onderscheiden vier soorten operaties
o Operaties om nieuwe objecten aan te maken = CONSTRUCTOR
§ Laten ons toe objecten te instantiëren in een initieel geldige toestand
§ Worden gebruikt om nieuwe objecten aan te maken
§ Eventuele informatie die nodig is om een object aan te maken wordt
doorgegeven via parameters
• Kan noodzakelijk zijn om een initieel geldige toestand te
garanderen.
3