Hoofdstuk 2 Objectgeoriënteerde basisbegrippen

35
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 Presentation

Transcript of Hoofdstuk 2 Objectgeoriënteerde basisbegrippen

Page 1: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

Hoofdstuk 2

Objectgeoriënteerde basisbegrippen

Page 2: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

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

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

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

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

Klassen - Definitie

Klasse = implementatie van een verzameling bij elkaar horende objecten

Page 7: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

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

Klassen - Definitie

klasse = sjabloon : -> instantiëren van objectenklasse = koekjesvorm -> object = koekjeUML-voorstelling + pseudo-codeWesternroman van Eunice

Page 9: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

Klassen - Definitie

klasse = sjabloon : -> instantiëren van objectenklasse = koekjesvorm -> object = koekjeUML-voorstelling + pseudo-codeWesternroman van Eunice

Page 10: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

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

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

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

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

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

UML-voorstelling van een klasse

algemeen:

Page 16: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

UML-voorstelling van een klasse

Toegepast op WesternStad:

Page 17: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

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

UML-voorstelling van een klasse

Page 19: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

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

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

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

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

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

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

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

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

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

Toepassing + inkapselingNieuwe UML-voorstelling van Westernstad

Page 29: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

Toepassing + inkapseling

void -> geen returnwaarde

Page 30: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

Toepassing + inkapseling

Aangepaste constructor

Page 31: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

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

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

Object -> Klasse hoofdprogramma: in pseudo-code

Page 34: Hoofdstuk 2  Objectgeoriënteerde basisbegrippen

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

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