hoofdstuk 2 objectgeori nteerde basisbegrippen n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen PowerPoint Presentation
Download Presentation
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen

play fullscreen
1 / 35

Hoofdstuk 2 Objectgeoriënteerde basisbegrippen

133 Views Download Presentation
Download Presentation

Hoofdstuk 2 Objectgeoriënteerde basisbegrippen

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Hoofdstuk 2 Objectgeoriënteerde basisbegrippen

  2. 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 deze leiden ons naar de 3 objectgeoriënteerde steunpilaren : inkapseling, overerving, polymorfie

  3. Wat is een object? Verschil tussen objectgeoriënteerde software en traditionele software object = ding dat voorkomt in de scope die we moeten automatiseren

  4. Wat is een object? Eigenschappen van object 1. onafhankelijk (andere objecten, rest programma) functioneren -> atomaire eenheid 2. Object komt overeen met tastbaar object: auto abstracte dingen of een concept: rekening organisatorische eenheid: bestand, window interactie: aankoop rol: oude winkeldochter

  5. Wat is een object? Eigenschappen van object 3. Eigen gespecialiseerde kennis in bepaald gebied, binnen algemeen probleemdomein 4. Data en bewerkingen -> gecombineerd tot logische eenheid object -> klasse = verzameling van objecten

  6. Klassen - Definitie Klasse = implementatie van een verzameling bij elkaar horende objecten

  7. Klassen - Definitie Cf. biologie = klasse zoogdieren:-> mensen, katten, honden Gedeelde kenmerken -> gemeenschappelijkheid Gerelateerde objecten -> klasse in definitie van een klasse: members van een klasse members: gemeenschappelijke 1. Eigenschappen=kenmerken=soort data= attributen 2. Gedragingen= acties/operaties= methoden

  8. Klassen - Definitie klasse = sjabloon : -> instantiëren van objecten klasse = koekjesvorm -> object = koekje UML-voorstelling + pseudo-code Westernroman van Eunice

  9. Klassen - Definitie klasse = sjabloon : -> instantiëren van objecten klasse = koekjesvorm -> object = koekje UML-voorstelling + pseudo-code Westernroman van Eunice

  10. Voorbeeld - Westernroman Westernroman van Eunice = steeds succesvol Reden = 1 blad = volledig verhaal = enkel plot Rest in mappen apart die ze dan meestuurt naar haar uitgever Op blad: titel: ” Geweerschoten in de Old West Saloon” eerste wat nodig is: een setting -> map Western Steden

  11. 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.

  12. Voorbeeld - Westernroman beschrijving = niet grondig levert 2 belangrijke zaken 1. De hoofdingrediënten voor een Western stad; 2. Verschillende waarden voor de ingrediënten in een standaard Western stad

  13. Voorbeeld - Westernroman WesternStad heeft 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

  14. Voorbeeld - Westernroman Wat wordt beschreven + schrijfwijze Soort variabelen = eigenschappen of attributen nu nog object construeren met defaultwaarden voor attributen java ter illustratie ipv 1 Westernstad, hele klasse die zegt welke elementen erin zitten maar niet hoeveel

  15. UML-voorstelling van een klasse algemeen:

  16. UML-voorstelling van een klasse Toegepast op WesternStad:

  17. UML-voorstelling van een klasse WesternStad( ) -> constructor dient om objecten te maken of te instantiëren geeft eventueel standaardwaarden mee zegt hoe object of instantie er standaard uit zal zien Pseudo-code ter aanvulling van het klassediagram

  18. UML-voorstelling van een klasse

  19. 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, returnwaarden type = soort methode precondities = beginvoorwaarden

  20. UML-voorstelling van een klasse Specificaties van methodes: postcondities = ->veranderingen die de methodeaanbrengt ->voorwaarden die gelden na de methode ->waaruit bestaat de output gebruikt = andere methodes gegevens -> lokale variabelen, maar niet de attributen constanten -> in hoofdletters

  21. 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

  22. 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.

  23. 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.

  24. 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

  25. Soorten methodes gedrag van een object : accessors + mutators toestand van een object: inhoud van de attributen elk 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

  26. Zichtbaarheid wat getoond wordt en wat niet elke objectgeoriënteerde taal -> eigen sleutelwoorden 3 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

  27. Toepassing + inkapseling toepassen op WesternStad attributen->privaat omwille van inkapseling voor elk attribuut -> mutator mutator -> beschikbaar voor gebruikers van de klasse -> publiek inhoud van mutator via pseudo-code constructor -> gebruik van mutators accessors -> voorlopig niet nodig

  28. Toepassing + inkapselingNieuwe UML-voorstelling van Westernstad

  29. Toepassing + inkapseling void -> geen returnwaarde

  30. Toepassing + inkapseling Aangepaste constructor

  31. Object -> Klasse piepje in de verzamelmap WesternStad Eunice besluit -> verhaal in een WesternStad hoofd (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.

  32. Object -> Klasse veel informatie in die paar lijnen verhaal -> 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.

  33. Object -> Klasse hoofdprogramma: in pseudo-code

  34. Object -> Klasse hoofdprogramma: in pseudo-code Volgende acties worden achtereenvolgens ondernomen: Instantiatie van een object: sweatyPost invullen van ontbrekende informatie -> private eigenschappen -> gebruik van mutators: « naam object ».setX(waarde voor X)

  35. Object -> Klasse objectgeoriënteerde programmeertechniek in actie: eerst wordt een klasse( = verzamelmap) WesternStad gemaakt, die een ruwe beschrijving bevat dan in het hoofdprogramma instantiatievan een object: sweatyPost