Polymorfisme: inleiding Hello me, meet the real me…

Slides:



Advertisements
Verwante presentaties
Een bericht speciaal voor jouw m’n
Advertisements

Echte Vrienden zijn belangrijk in het leven.
Hoofdstukken 15 en 16.  als spelers meer keuze hebben kunnen nieuwe verhalen ontstaan. Hoe kan ik meer keuzes brengen?  Conflicten leiden tot meerdere.
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen. Nog meer over klassen en het begrip overerving  nieuwe map -> Mensen  op eerste bladzijde: “ Alle mensen.
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Inleiding Informatica
Hoofdstuk 6: Controle structuren
De koektrommel of de grabbelton
INTERACTION DESIGN Week 6. VANDAAG Wat hebben we ook al weer gedaan Soorten gedrag Modellen User interface Q & A.
ICT-rijk bewegen in 3 VWO / HAVO Het implementeren van de nieuwe functionaliteit van Coach 6, vanuit een didactisch oogpunt bekeken Ron Vonk Archimedes.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Inleidend probleem Data structuur (hiërarchie van classes)
Designing Knowledge Systems b Hoofdstuk 11 van Knowledge Engineering and Management. The CommonKADS Methodology. b A.Th. Schreiber, J.M. Akkermans, A.A.Anjewierder,
Hoofdstuk 10 Overerving.
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Een bericht speciaal voor jouw m’n
Overerving Toepassingen. Overerving: toepassingen zoefening 1 : eenvoudige overerving.
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen. Accessors en polymorfie zGoede gewoonte voor objectgeoriënteerde programma -> voor alle eigenschappen:
JAVA1 H 10. OBJECTGEORIENTEERD PROGRAMMEREN: POLYMORFISME 1. INLEIDING Polymorfisme "programmeren in het algemene" alle objecten in dezelfde klassehiërarchie.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
Arrays.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Overerving Inheritance Overerving l Inleiding l Type-extensie l Compatibiliteit van een basistype met zijn extensie l Statisch en dynamisch type l Run.
Overerving: It’s a kind of magic…. Principes van OO: 1) Overerving 2) Encapsulatie 3) Polymorphisme = (deel van het) OO. paradigma.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Encapsulatie: Every man is an island upon himself.
Polymorfie Hoofdstuk 24. Visual Basic.NET voor studenten2 Inleiding Polymorfie zorgt ervoor dat een gegeven object verschillende “vormen” kan aannemen.
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Polymorphisme en Interfaces: inleiding
VOORBEREIDING BEROEPS PRAKTIJKVORMING SCHOOLJAAR
Onze doelen en visie in beeld
Hoofdstuk 12 Ontwerp van programma’s. Ontwerp van de GUI nStandaard in Applets: alle met add toegevoegde componenten komen naast elkaar (totdat de regel.
Prototyping Week 7 // Tweenlite & API. TweenMax Snel mooie en effectieve animatie.
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.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Variabelen. Wat zijn variabelen? Klassiek: een variabele houdt informatie bij. Klassiek: een variabele houdt informatie bij. bvb: int getal; getal = 5;
Herhaling: He who does not learn from history, is doomed to repeat it.
Variabelen. Wat zijn variabelen? In een programmeertaal zijn er “dingen” nodig die ervoor zorgen dat het programma informatie voor korte of langere tijd.
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 – ….
VVV-Venlo Jeugdopleiding Thema Avond
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Gegarandeerde Aflevering. p. 2  Referte : unieke identificatie van berichten, vragen en antwoorden Vraag / Antwoord : De afzender dient voor elke vraag.
Memc.  Je kent het antwoord terwijl je je programma maakt en dit is niet veel: voorzie X objecten.  Je kent het antwoord terwijl je je programma maakt.
Objectgeoriënteerd Programmeren (2)
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Overerving
Object georiënteerd programmeren
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Herhalingen
Gameprogrammeren: Properties
Gameprogrammeren: Abstracte klassen
Zo gaan Roos en Tom met elkaar om
Zo gaan Sarah en Jerom met elkaar om
Arjan Egges & Paul Bergervoet
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Polymorfisme: inleiding Hello me, meet the real me…

Case study De add( ) methode van Applet De add( ) methode van Applet

Referenties revisited Referentie: houdt de positie van het object bij en bepaalt hoe het object zich “gedraagt”. Referentie: houdt de positie van het object bij en bepaalt hoe het object zich “gedraagt”.

Referenties revisited Referentie: houdt de positie van het object bij en bepaalt hoe het object zich “gedraagt”. Referentie: houdt de positie van het object bij en bepaalt hoe het object zich “gedraagt”. Gedragen: de verzameling van methods die op het object kunnen aangeroepen worden. Gedragen: de verzameling van methods die op het object kunnen aangeroepen worden.

Upcasten Er kan naar een object verwezen worden door een referentie van de klasse van dat object, of door een referentie van elke superklasse van dat object. Er kan naar een object verwezen worden door een referentie van de klasse van dat object, of door een referentie van elke superklasse van dat object.

Upcasten Vb: Component c1 = new Button(); Vb: Component c1 = new Button();

Upcasten Er kan naar een object verwezen worden door een referentie van de klasse van dat object, of door een referentie van elke superklasse van dat object. Er kan naar een object verwezen worden door een referentie van de klasse van dat object, of door een referentie van elke superklasse van dat object. Vb: Component c1 = new Button(); Vb: Component c1 = new Button(); Het object gedraagt zich als een object van de klasse van de referentie: polymorfisch gedrag. Het object gedraagt zich als een object van de klasse van de referentie: polymorfisch gedrag.

Upcasten Dit wil zeggen dat het Button object, waarnaar verwezen wordt door een Component referentie, enkel die methods die in Component gedeclareerd zijn, zal kunnen uitvoeren. Dit wil zeggen dat het Button object, waarnaar verwezen wordt door een Component referentie, enkel die methods die in Component gedeclareerd zijn, zal kunnen uitvoeren.

Downcasten Een object, waarnaar verwezen wordt door een referentie van een superklasse van dit object, heeft geen toegang tot die methods die specifiek zijn aan haar klasse. Een object, waarnaar verwezen wordt door een referentie van een superklasse van dit object, heeft geen toegang tot die methods die specifiek zijn aan haar klasse.

Downcasten Het object kan terug toegang tot haar specifieke methods krijgen wanneer er terug een referentie van haar eigen klasse naar het object gelegd wordt. Het object kan terug toegang tot haar specifieke methods krijgen wanneer er terug een referentie van haar eigen klasse naar het object gelegd wordt.

Downcasten Dit vereist een expliciete cast. Deze handeling wordt “downcasten” genoemd. Dit vereist een expliciete cast. Deze handeling wordt “downcasten” genoemd. Vb: Vb: Component c1 = new Button(); Component c1 = new Button(); c1.setLabel(“hello”); // werkt niet Button b1 = (Button) c1; // downcast b1.setLabel(“Hello”); // werkt wel

ClassCastException De compiler kan niet op voorhand weten of een downcast mag uitgevoerd worden. De compiler kan niet op voorhand weten of een downcast mag uitgevoerd worden.

ClassCastException Een onmogelijke downcast (bvb. een object dat origineel een Button was downcasten naar een TextField) resulteert in een runtime error: ClassCastException. Een onmogelijke downcast (bvb. een object dat origineel een Button was downcasten naar een TextField) resulteert in een runtime error: ClassCastException.

Typecontrole Elk object heeft, overgeërfd van Object, de method getClass(). Hierop getName() uitvoeren geeft voor elk object haar echte klassenaam weer. Elk object heeft, overgeërfd van Object, de method getClass(). Hierop getName() uitvoeren geeft voor elk object haar echte klassenaam weer.

Typecontrole Dit kan gebruikt worden om te checken of een downcast toegestaan is. Dit kan gebruikt worden om te checken of een downcast toegestaan is. Bvb: knop1.getClass().getName() Bvb: knop1.getClass().getName()

Nut van polymorfisch gedrag: Verschillende subtypes van een klasse kunnen op dezelfde manier behandeld worden (bvb. de add() en de addActionListener() methoden van Applet) Verschillende subtypes van een klasse kunnen op dezelfde manier behandeld worden (bvb. de add() en de addActionListener() methoden van Applet) Zie vb. Zie vb.

e.getSource() Geeft een referentie van het type Object terug dat verwijst naar het object dat het event triggerde. Geeft een referentie van het type Object terug dat verwijst naar het object dat het event triggerde.

e.getSource() Dit object moet gedowncast worden naar zijn specifieke klasse alvorens het zijn specifieke methods kan gebruiken. Dit object moet gedowncast worden naar zijn specifieke klasse alvorens het zijn specifieke methods kan gebruiken. Zie vb. Zie vb.