Ontwerpenh2deel3

advertisement
Hoofdstuk 2
Objectgeoriënteerde
basisbegrippen
Accessors en polymorfie
Goede gewoonte voor objectgeoriënteerde
programma
-> voor alle eigenschappen: accessors en
mutators
-> steeds mutators en accessors
gebruiken om eigenschappen te
wijzigen en aan te roepen
-> wijzigingen slechts op 1 plaats
Accessors en polymorfie
2 verschillen ten opzichte van voordien:
-> voor alle eigenschappen: accessors
accessor = ophalen van waarde van attribuut
-> eventueel bewerkingen op
attribuut alvorens weergave
voorbeeld: getDronkenschap( )
alternatief voor hoeDronkenBenIk( )
Accessors en polymorfie
Accessors en polymorfie
Accessors en polymorfie
Accessors en polymorfie
-> tweede verschil : herhaling van de methode
watIsUwNaam( ) uit Mensen
* enkel in geval van andere implementatie
* als naam aan slechterik gevraagd wordt
zegt hij erbij dat hij een slechterik is
=> verschillend gedrag bij aanroep voor object van klasse
Slechterik als voor object van klasse Mensen, maar
methode heeft dezelfde naam => polymorfie
Accessors en polymorfie
Accessors en polymorfie
Verschil in gedrag -> zichtbaar in main
Accessors en polymorfie
Accessors en polymorfie
Accessors en polymorfie
Jack -> vriendelijke slechterik
benen = 1 via setBenen( )
geen paard
geen jonkvrouw aan de haak geslagen
verschillende slechterik-objecten met ander gedrag
 polymorfie -> door middel van methode
watIsUwNaam( )
Relaties tussen objecten
en klassen
Relaties tss objecten
-> 2 manieren
1. Objecten zijn onafhankelijk
2. Object bevat andere objecten vb. via
aggregatie (= klasserelatie):
in Slechterik-voorbeeld :
object maurice bevat
-> object jonkvrouw (Mensen)
-> snorKleur, naam (String-objecten)
Alles in OO is object; zelfs onderdelen van object
Relaties tussen objecten
en klassen
-> eventuele communicatie via
berichten = aanroepen van een
methode om de toestand
van een object te wijzigen
of een gedrag uit te voeren
=>uitvoering van methode = antwoord van
object op het ontvangen van een bericht.
-> berichtenverkeer in volgordediagram
Relaties tussen objecten
en klassen
-> berichten = belangrijk objectgeoriënteerd concept
-> maken het mogelijk dat objecten
onafhankelijk blijven: als een object een
bericht naar een ander object verstuurt,
dan kan het dat object niet schelen op
welke manier het ander object besluit het
aangevraagde gedrag uit te voeren. Het
aanvragende object is er alleen in
geïnteresseerd dat het gedrag optreedt.
Relaties tussen objecten
en klassen
-> objectgeoriënteerd = betere werkwijze -> betere
benadering van de real world
-> sluit nauwer aan bij
onze denkwijze via
sleuteleigenschap abstractie
zonder abstractie -> onmogelijk
meest eenvoudige opgave
uit te voeren wegens constante
hindering door een overvloed
van details.
Related documents
Download