Hoofdstuk 2 Objectgeoriënteerde basisbegrippen

Slides:



Advertisements
Verwante presentaties
Informatieanalyse klassediagram I.
Advertisements

Ingave via het scherm Algemene beschrijving van de toepassing De toepassing is opgebouwd uit drie niveaus : Niveau 1 : verzending en afzender Niveau 2.
Les 2 klassediagrammen II
Programmeren in Java met BlueJ
Marktonderzoek als proces
Objecten en Volgordediagrammen
Van domeinklasse tot implementatie
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen. Nog meer over klassen en het begrip overerving  nieuwe map -> Mensen  op eerste bladzijde: “ Alle mensen.
Het ontwerpen van een klasse
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Klassen en objecten.
Greenfoot Workshop Bobby - Snake.
Statistiek ?! … Ronald Buyl - BISI.
Hoofdstuk 6: Controle structuren
Hoofdstuk 4: Klassen definiëren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Hoofdstuk 2 Hallo, C# !.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1 Het probleem RO Milieu Landbouw SocZekerheid Etc. LerenWerkenWonenPensioenEtc. Overheids- organisatie Burger ??? Regelgeving per domein Vraag op levensmoment.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Inleidend probleem Data structuur (hiërarchie van classes)
Numerieke Natuurkunde
Marktonderzoek als proces
1 Inleiding Programmeren in Java Ma 29 januari 2001.
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
Backup & Recovery Windows 2003 Server Onderhoud en Beheer Netwerken 4.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
Overerving Toepassingen. Overerving: toepassingen zoefening 1 : eenvoudige overerving.
Fundamenten ontwerpen
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen. Accessors en polymorfie zGoede gewoonte voor objectgeoriënteerde programma -> voor alle eigenschappen:
JAVA1 H 9. OBJECTGEORIENTEERD PROGRAMMEREN: OVERERVING 1. INLEIDING Wat is overerving (inheritance)? Overerving is een mechanisme waarbij software opnieuw.
Grafieken, organigrammen
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
Module 7 – Hoofdstuk 3 Unified Modeling Language.
OOS Object geOrienteerd Software-ontwerp - 2
Eenvoudig voorbeeld: Steden in Belgie
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
Informatica Flash gevorderden. Vereiste voorkennis: Geslaagd zijn voor de cursus Flash beginners OF Beschikken over de volgende voorkennis: Kennis hebben.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Overerving: It’s a kind of magic…. Principes van OO: 1) Overerving 2) Encapsulatie 3) Polymorphisme = (deel van het) OO. paradigma.
Introductie tot GoF patterns in Java
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Teachers Teaching with Technology™ Bouwen van dynamische modellen voor de Nspire 1 Cathy Baars Jaco Scheer.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
OOP en.NET. Objecten Is geen ‘nieuw’ mysterieus woord Overal om ons heen zien we objecten: – TV – Computer – Auto – Wasmachine – ….
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
SharePoint Alles over metadata In de Private en Public cloud.
Objectgeoriënteerd Programmeren (2)
Objectgeoriënteerd Programmeren
Webinar voor ambassadeurs
Algemene beschrijving van de toepassing
Object georiënteerd programmeren
Gameprogrammeren: Methoden
Tinpro015b-les4 Klassen.
Unified Modeling Language
Gameprogrammeren: Klassen en objecten
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

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

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

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

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

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

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

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

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

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

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.

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

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

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

UML-voorstelling van een klasse algemeen:

UML-voorstelling van een klasse Toegepast op WesternStad:

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

UML-voorstelling van een klasse

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

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

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

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.

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.

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

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

Zichtbaarheid 1. Privaat -> in UML : - 2. Publiek -> in UML : + 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

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

Toepassing + inkapseling Nieuwe UML-voorstelling van Westernstad

Toepassing + inkapseling void -> geen returnwaarde

Toepassing + inkapseling Aangepaste constructor

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.

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.

Object -> Klasse hoofdprogramma: in pseudo-code

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)

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