Overerving: It’s a kind of magic…. Principes van OO: 1) Overerving 2) Encapsulatie 3) Polymorphisme = (deel van het) OO. paradigma.

Slides:



Advertisements
Verwante presentaties
Les 2 klassediagrammen II
Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
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 type int Tekenen met Java operatoren
Klassen en objecten.
Hoofdstuk 2 Hallo, C# !.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Overerving Hoofdstuk 11 Hoofdstuk 11.
Hoofdstuk 10 Overerving.
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 8 Objecten en klassen.
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.
Oefeningen Hoofdstuk 3.
Bezittelijk voornaamwoord
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
Overerving Toepassingen. Overerving: toepassingen zoefening 1 : eenvoudige overerving.
JAVA1 H 10. OBJECTGEORIENTEERD PROGRAMMEREN: POLYMORFISME 1. INLEIDING Polymorfisme "programmeren in het algemene" alle objecten in dezelfde klassehiërarchie.
JAVA1 H 9. OBJECTGEORIENTEERD PROGRAMMEREN: OVERERVING 1. INLEIDING Wat is overerving (inheritance)? Overerving is een mechanisme waarbij software opnieuw.
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Visual Basic 2005/2008 OOP in praktijk André Obelink - MCSD, MVP Web: Web: -
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Overloading My name is overloading, cause we are many.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Introductie tot GoF patterns in Java
Polymorfisme: inleiding Hello me, meet the real me…
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
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,
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Encapsulatie: Every man is an island upon himself.
Polymorphisme en Interfaces: inleiding
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.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
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.
Tekenen marktplaats Thema Verzin een thema voor jouw tekening, zoals markt van vroeger, of een markt in Azië. Of iets wat je zelf verzint.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Objectgeoriënteerd Programmeren (2)
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Overerving
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Game Basics
Tinpro015b-les4 Klassen.
Gameprogrammeren: Abstracte klassen
Gameprogrammeren: Interfaces
Unified Modeling Language
Gameprogrammeren: Klassen en objecten
Arjan Egges & Paul Bergervoet
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Overerving: It’s a kind of magic…

Principes van OO: 1) Overerving 2) Encapsulatie 3) Polymorphisme = (deel van het) OO. paradigma

Principes van OO: 1) Overerving

Principes van OO: 1) Overerving Een nieuwe klasse maken door een reeds bestaande klasse aan te passen.

Principes van OO: 1) Overerving Een nieuwe klasse maken door een reeds bestaande klasse aan te passen. Bvb. een nieuwe Button klasse maken die geel en rode Buttons aanmaakt.

Principes van OO: 1) Overerving Een nieuwe klasse maken door een reeds bestaande klasse aan te passen. Of: een nieuwe GSMControle klasse maken die een nieuw type GSM aanstuurt.

Principes van OO: 1) Overerving Nieuwe klasse = “subclass” Bestaande klasse = “superclass”

Principes van OO: 1) Overerving Nieuwe klasse = “subclass” Bestaande klasse = “superclass” public class Klasse1 extends Klasse2 {}

Principes van OO: 1) Overerving Nieuwe klasse = “subclass” Bestaande klasse = “superclass” public class GRKnop extends Button {} Vb:

Overerving: principe - De nieuwe klasse begint met dezelfde attributen en methoden als de superklasse; dus alsof je alles van de superklasse nog eens hebt overgeschreven.

Overerving: principe - De nieuwe klasse begint met dezelfde attributen en methoden als de superklasse; dus alsof je alles van de superklasse nog eens hebt overgeschreven. - Je kunt dan aanpassingen gaan maken om je nieuwe klasse te bouwen (zie volgende slide).

Overerving: principe - De nieuwe klasse begint met dezelfde attributen en methoden als de superklasse; dus alsof je alles van de superklasse nog eens hebt overgeschreven. - Je kunt dan aanpassingen gaan maken om je nieuwe klasse te bouwen (zie volgende slide). - Voorbeeld.

Uitzondering: Constructoren worden niet overgeërfd. Constructoren worden niet overgeërfd.

Uitzondering: Je kunt wel de constructoren van de superklasse aanroepen vanuit de subklasse (via super( ) ). Je kunt wel de constructoren van de superklasse aanroepen vanuit de subklasse (via super( ) ).

Wat mag?

1) Je kunt nieuwe attributen toevoegen

Wat mag? 1) Je kunt nieuwe attributen toevoegen 2) Je kunt constructoren toevoegen

Wat mag? 1) Je kunt nieuwe attributen toevoegen 2) Je kunt constructoren toevoegen 3) Je kunt nieuwe methoden toevoegen

Wat mag? 1) Je kunt nieuwe attributen toevoegen 2) Je kunt constructoren toevoegen 3) Je kunt nieuwe methoden toevoegen 4) Je kunt bestaande methoden iets anders laten doen

Wat mag niet? Je kunt geen overgeërfde attributen weglaten. Je kunt geen overgeërfde attributen weglaten.

Wat mag niet? Je kunt geen overgeërfde attributen weglaten. Je kunt geen overgeërfde attributen weglaten. Je kunt geen overgeërfde methoden weglaten. Je kunt geen overgeërfde methoden weglaten.

Wat mag niet? Je kunt geen overgeërfde attributen weglaten. Je kunt geen overgeërfde attributen weglaten. Je kunt geen overgeërfde methoden weglaten. Je kunt geen overgeërfde methoden weglaten. Maw. je kunt enkel extra elementen toevoegen of overgeërfde methoden iets anders laten doen.

Hoe doe je het?

Om elementen te houden zoals ze zijn, doe je niets. Om elementen te houden zoals ze zijn, doe je niets.

Hoe doe je het? Om elementen te houden zoals ze zijn, doe je niets. Om elementen te houden zoals ze zijn, doe je niets. Als je iets wil bijvoegen of veranderen aan de oude klasse, dan moet je (enkel) dit typen in de nieuwe klasse. Als je iets wil bijvoegen of veranderen aan de oude klasse, dan moet je (enkel) dit typen in de nieuwe klasse.

Hoe doe je het? Om elementen te houden zoals ze zijn, doe je niets. Om elementen te houden zoals ze zijn, doe je niets. Als je iets wil bijvoegen of veranderen aan de oude klasse, dan moet je (enkel) dit typen in de nieuwe klasse. Als je iets wil bijvoegen of veranderen aan de oude klasse, dan moet je (enkel) dit typen in de nieuwe klasse. Voorbeeld. Voorbeeld.

Overervingsmodel Java De klasse Applet en haar basisklassen (= superklassen) De klasse Applet en haar basisklassen (= superklassen) De klasse Object De klasse Object

Constructoren: super( )

Constructoren van de superklasse worden niet overgeërfd. Constructoren van de superklasse worden niet overgeërfd.

Constructoren: super( ) Constructoren van de superklasse worden niet overgeërfd. Constructoren van de superklasse worden niet overgeërfd. Men kan constructoren van de superklasse aanroepen vanuit constructoren van de subklasse, via super( ). Men kan constructoren van de superklasse aanroepen vanuit constructoren van de subklasse, via super( ).

Constructoren: super( ) Constructoren van de superklasse worden niet overgeërfd. Constructoren van de superklasse worden niet overgeërfd. Men kan constructoren van de superklasse aanroepen vanuit constructoren van de subklasse, via super( ). Men kan constructoren van de superklasse aanroepen vanuit constructoren van de subklasse, via super( ). super( ) moet, indien het gebruikt wordt, als eerst regel staan (zoals ook bij this( ) ). (voorbeeld GRTextField) super( ) moet, indien het gebruikt wordt, als eerst regel staan (zoals ook bij this( ) ). (voorbeeld GRTextField)

Constructoren: super( ) Als super() niet gebruikt wordt, dan roept Java automatisch de default constructor van de superklasse aan om haar datamembers te initialiseren. Als super() niet gebruikt wordt, dan roept Java automatisch de default constructor van de superklasse aan om haar datamembers te initialiseren.

Constructoren: super( ) Als super() niet gebruikt wordt, dan roept Java automatisch de default constructor van de superklasse aan om haar datamembers te initialiseren. Als super() niet gebruikt wordt, dan roept Java automatisch de default constructor van de superklasse aan om haar datamembers te initialiseren. Gevaar: dit compileert niet als de basisklasse geen default (of automatische default) constructor heeft (wanneer is dit?). Gevaar: dit compileert niet als de basisklasse geen default (of automatische default) constructor heeft (wanneer is dit?).

Klassendiagram p 238 boek p 238 boek p 290 boek p 290 boek

Methoden: overriding = een bestaande methode in de superklasse iets anders laten doen in de subklasse.

Methoden: overriding = een bestaande methode in de superklasse iets anders laten doen in de subklasse. p 293 zie boek p 293 zie boek

Methoden: overriding = een bestaande methode in de superklasse iets anders laten doen in de subklasse. p 293 zie boek p 293 zie boek Adhv oefening Cirkel -> Ring Adhv oefening Cirkel -> Ring

Typecasting tussen klassen Referentie: Referentie: 1) Houdt bij over welk object het gaat 2) Bepaalt welke methods en attributen dit object kan gebruiken.