hoofdstuk 2 objectgeoriënteerde basisbegrippen
DESCRIPTION
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen. Inleiding. object, klasse, hoe klassen communiceren UML-voorstelling + pseudo-code rode draad = western roman 3 soorten kaders (enkel, dubbel, koord) vetgedrukte termen = objectgeoriënteerde termen - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/1.jpg)
Hoofdstuk 2
Objectgeoriënteerde basisbegrippen
![Page 2: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/2.jpg)
Inleiding
object, klasse, hoe klassen communiceren UML-voorstelling + pseudo-code rode draad = western roman3 soorten kaders (enkel, dubbel, koord)vetgedrukte termen = objectgeoriënteerde termendeze leiden ons naar de 3 objectgeoriënteerde steunpilaren : inkapseling, overerving, polymorfie
![Page 3: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/3.jpg)
Wat is een object?
Verschil tussen objectgeoriënteerde software en traditionele softwareobject = ding dat voorkomt in de scope die we moeten automatiseren
![Page 4: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/4.jpg)
Wat is een object? Eigenschappen van object
1. onafhankelijk (andere objecten, rest programma) functioneren -> atomaire eenheid2. Object komt overeen met
tastbaar object: autoabstracte dingen of een concept: rekeningorganisatorische eenheid: bestand, windowinteractie: aankooprol: oude winkeldochter
![Page 5: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/5.jpg)
Wat is een object? Eigenschappen van object
3. Eigen gespecialiseerde kennis in bepaald gebied, binnen algemeen probleemdomein4. Data en bewerkingen -> gecombineerd tot logische eenheid
object -> klasse = verzameling van objecten
![Page 6: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/6.jpg)
Klassen - Definitie
Klasse = implementatie van een verzameling bij elkaar horende objecten
![Page 7: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/7.jpg)
Klassen - Definitie
Cf. biologie = klasse zoogdieren:-> mensen, katten, hondenGedeelde kenmerken -> gemeenschappelijkheid Gerelateerde objecten -> klassein definitie van een klasse: members van een klassemembers: gemeenschappelijke 1. Eigenschappen=kenmerken=soort data= attributen 2. Gedragingen= acties/operaties= methoden
![Page 8: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/8.jpg)
Klassen - Definitie
klasse = sjabloon : -> instantiëren van objectenklasse = koekjesvorm -> object = koekjeUML-voorstelling + pseudo-codeWesternroman van Eunice
![Page 9: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/9.jpg)
Klassen - Definitie
klasse = sjabloon : -> instantiëren van objectenklasse = koekjesvorm -> object = koekjeUML-voorstelling + pseudo-codeWesternroman van Eunice
![Page 10: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/10.jpg)
Voorbeeld - Westernroman
Westernroman van Eunice = steeds succesvolReden = 1 blad = volledig verhaal = enkel plotRest in mappen apart die ze dan meestuurt naar haar uitgeverOp blad: titel: ” Geweerschoten in de Old West Saloon”eerste wat nodig is: een setting -> map Western Steden
![Page 11: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/11.jpg)
Voorbeeld - Westernroman
Elke Western stad heeft een aantal hoofdingrediënten: stallen, saloons, sheriffs en een paar ruziemakers. Een standaard stad heeft drie stallen en is gelokaliseerd ten Westen van de Mississippi ergens rond 1850.
![Page 12: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/12.jpg)
Voorbeeld - Westernroman
beschrijving = niet grondiglevert 2 belangrijke zaken
1. De hoofdingrediënten voor een Westernstad;
2. Verschillende waarden voor de ingrediënten in een standaard Western stad
![Page 13: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/13.jpg)
Voorbeeld - Westernroman
WesternStadheeft een zeker aantal stallen
heeft een zeker aantal saloons
heeft een zeker aantal sheriffs
heeft een zeker aantal ruziemakers
bevindt zich ergens
bestaat op een zekere periode
een typische WesternStad zal hebben:een aantal stallen = 3
locatie = Wilde Westen van Amerika
tijdsperiode = 1850
![Page 14: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/14.jpg)
Voorbeeld - Westernroman
Wat wordt beschreven + schrijfwijzeSoort variabelen = eigenschappen of attributennu nog object construeren met defaultwaarden voor attributenjava ter illustratieipv 1 Westernstad, hele klasse die zegt welke elementen erin zitten maar niet hoeveel
![Page 15: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/15.jpg)
UML-voorstelling van een klasse
algemeen:
![Page 16: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/16.jpg)
UML-voorstelling van een klasse
Toegepast op WesternStad:
![Page 17: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/17.jpg)
UML-voorstelling van een klasse
WesternStad( ) -> constructordient om objecten te maken of te instantiërengeeft eventueel standaardwaarden meezegt hoe object of instantie er standaard uit zal zien Pseudo-code ter aanvulling van het klassediagram
![Page 18: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/18.jpg)
UML-voorstelling van een klasse
![Page 19: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/19.jpg)
UML-voorstelling van een klasse
Specificaties van methodes:in- en uitvoer naast naam methode
invoer = input voor correct functioneren
-> argumenten met naam en type
uitvoer = resultaat, returnwaardentype = soort methodeprecondities = beginvoorwaarden
![Page 20: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/20.jpg)
UML-voorstelling van een klasse
Specificaties van methodes:postcondities =
->veranderingen die de methode aanbrengt
->voorwaarden die gelden na de methode
->waaruit bestaat de outputgebruikt = andere methodes gegevens -> lokale variabelen, maar niet de attributenconstanten -> in hoofdletters
![Page 21: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/21.jpg)
Soorten methodes
4 soorten methodes:1. constructor = creëren objecten van klassen
=instantiëren ->objecten = instanties
->voorwaarden die gelden na de methode
->2 soorten
constructor met argumenten->argumenten = initialisatie van de attributen
noarg-constructor ->initialisatie met standaardwaarden
![Page 22: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/22.jpg)
Soorten methodes
4 soorten methodes:2. Accessor -> waarde van attributen van de klasse
->toegang tot interne toestand van objecten
->rechtstreeks
->verwerking/wijziging van de inhoud
->niet zichtbaar
getX( ): ->= accessor methode die toegang geeft tot
het attribuut x; de “getty”-methodes.
![Page 23: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/23.jpg)
Soorten methodes
4 soorten methodes:3. Mutator -> wijziging van de waarde van de
attributen van de klasse
-> wijzigen van interne toestand van object bij
aanroep van deze methode van buitenaf
-> invoer kan verwerkt worden, voordat deze de
interne toestand van het object wijzigt.
setX( ): ->= mutator methode die toelaat een attribuut x
te veranderen; de “setty”-methodes.
![Page 24: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/24.jpg)
Soorten methodes
4 soorten methodes:4.Utility methodes -> andere methodes
-> private (enkel toegankelijk van binnen uit de
klasse) functies voor intern gebruik
-> publieke methodes
->kunnen gebruik maken van de getter en
setter-methodes
![Page 25: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/25.jpg)
Soorten methodes
gedrag van een object : accessors + mutatorstoestand van een object: inhoud van de attributenelk object start als een kloon, maar kan zich tijdens zijn leven anders gedragen.
-> vb twee WesternStadobjecten met ander
aantal ruziemakers
->grijs zoogdier /bruin zoogdier
objectgeoriënteerde programmeren -> accessors en mutators voor alle attributen
-> aanpassen/oproepen via deze methodes
![Page 26: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/26.jpg)
Zichtbaarheid
wat getoond wordt en wat nietelke objectgeoriënteerde taal -> eigen sleutelwoorden3 niveaus van toegang:
1. Privaat -> in UML : -
2. Publiek -> in UML : +
3. Beveiligd/protected -> in UML : #inkapseling -> belangrijk voor ontwerp:
->Elk gedrag dat u wilt tonen-> publieke
->Alles wat u wilt verbergen-> beveiligd of privaat
![Page 27: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/27.jpg)
Toepassing + inkapseling
toepassen op WesternStadattributen->privaat omwille van inkapselingvoor elk attribuut -> mutatormutator -> beschikbaar voor gebruikers van de klasse -> publiekinhoud van mutator via pseudo-codeconstructor -> gebruik van mutatorsaccessors -> voorlopig niet nodig
![Page 28: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/28.jpg)
Toepassing + inkapselingNieuwe UML-voorstelling van Westernstad
![Page 29: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/29.jpg)
Toepassing + inkapseling
void -> geen returnwaarde
![Page 30: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/30.jpg)
Toepassing + inkapseling
Aangepaste constructor
![Page 31: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/31.jpg)
Object -> Klasse
piepje in de verzamelmap WesternStadEunice besluit -> verhaal in een WesternStadhoofd (main) blad papier -> eerste deel van plot
Geweerschoten in de Old West Saloon
Dit verhaal speelt zich af in een Western Stad, genaamd Sweaty Post. Sweaty Post heeft één sheriff, twee saloons en vijf ruziemakers.
![Page 32: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/32.jpg)
Object -> Klasse
veel informatie in die paar lijnenverhaal -> uitgever -> betekenis WesternStad uit verzamelmap
-> direkt datum, de locatie en aantal stallen
-> Eunice levert gegevens bij voor de andere
attributen, zoals de uitgever te verwachten
was.
![Page 33: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/33.jpg)
Object -> Klasse hoofdprogramma: in pseudo-code
![Page 34: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/34.jpg)
Object -> Klasse hoofdprogramma: in pseudo-code
Volgende acties worden achtereenvolgens ondernomen:Instantiatie van een object: sweatyPostinvullen van ontbrekende informatie
-> private eigenschappen
-> gebruik van mutators:
« naam object ».setX(waarde voor X)
![Page 35: Hoofdstuk 2 Objectgeoriënteerde basisbegrippen](https://reader036.vdocuments.net/reader036/viewer/2022081516/568139f7550346895da1b52d/html5/thumbnails/35.jpg)
Object -> Klasse
objectgeoriënteerde programmeertechniek in actie:eerst wordt een klasse( = verzamelmap) WesternStad gemaakt, die een ruwe beschrijving bevatdan in het hoofdprogramma instantiatie van een object: sweatyPost