Algoritmiek Class Hierarchies, Inheritance. Hoorcollege 12 - Ma. 20 nov. 2006 L.M. Bosveld-de Smet.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
HM-ES-th1 Les 9 Hardware/Software Codesign with SystemC.
SAP ABAP A short introduction. SAP ABAP • Selectie: – IF …… ENDIF. – IF …. ELSE … ENDIF. – IF …. ELSEIF …. ELSEIF …. ELSE …. ENDIF. – IF condition_1.
OOS Object geOrienteerd Software-ontwerp - 3
JAVA1 H 16. MULTITHREADING. 1. INLEIDING. Threads: delen van het programma die in concurrentie met elkaar gelijktijdig in executie gaan. Thread is een.
AI81 AI Kaleidoscoop College 8: Kennisrepresentatie (II)  Frames  Scripts Leeswijzer:Hoofdstuk
Programmeren in Java met BlueJ
Van domeinklasse tot implementatie
MagentaPurpleTeal PinkOrangeBlue LimeBrown RedGreen Introductie C# /.NET
Nieuwe wegen in ontwerpen met CAD
Project Software Engineering Universiteit AntwerpenBetrouwbaarheid 2.1 Ontdek de 7 verschillen.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Hyves brands Scrape, mashup and analyse. Introduction Anxiety about visible data on social networks by parents, employees (in news) Anxiety comes from.
AAHA (voor intern gebruik)
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
HM-ES-th1 Les 1 Hardware/Software Codesign with SystemC.
Computervaardigheden en Programmatie Universiteit AntwerpenObjecten 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Hoofdstuk 6: Controle structuren
Programming for Linguists An Introduction to Python 29/11/2012.
Server side scripting 1 Webtechnologie Lennart Herlaar.
1 Toegepaste Informatica Keuzevak C++ 3°jaar. 2 Studiefiche  Software  Boek (hfst 3-5)  Presentatie (website)
1/1/ / faculty of Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
Algoritmiek Arrays: wat zijn dat en wat kun je ermee? Loops: hoe hou je ze in bedwang? Hoorcollege 6 - Ma. 9 okt L.M. Bosveld-de Smet.
Probleem P 1 is reduceerbaar tot P 2 als  afbeelding  :P 1  P 2 zo dat: I yes-instantie van P 1   (I) yes-instantie van P 2 als ook:  polytime-algoritme,
ERIC Combine search terms with Boolean operators Next = click.
Databases I (H.9.1-2) Van EER naar relationeel Wiebren de Jonge Vrije Universiteit, Amsterdam versie 2003.
Databases I EER and Object Modeling Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam definitieve versie 2002.
Databases I (H.3) Het Entity-Relationship Model Wiebren de Jonge Vrije Universiteit, Amsterdam versie 2003.
Overerving Hoofdstuk 11 Hoofdstuk 11.
Hoorcollege 8 Game object structuren. Arrays in games Grid-gebaseerd speelveld (zoals Tetris) Lijst van spelers Lijst van inventory items Lijst van alle.
Hoorcollege 13 Animatie, game physics. De speler Wordt aangestuurd via toetsenbord Kent verschillende soorten bewegingen Rennen Stilstaan Springen Doodgaan.
Hoorcollege 14 Vijanden, excepties. Wat zit allemaal in een level? Startpositie van de speler Waterdruppels Tiles Vijanden Einde van het level Achtergronden.
CONTROLESTRUCTUREN (DEEL 2)
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Hibernate Object relational mapping
Algoritmiek Object-georiënteerd Programmeren
Algoritmiek Strings & Stringmanipulaties; Controle Structuren; Floating-point notation. Hoorcollege 4 - Ma. 25 sept L.M. Bosveld-de Smet.
Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet.
Algoritmiek Dataweergave en bewerking Hoorcollege 2 - Ma. 11 sept L.M. Bosveld-de Smet.
H21. en H22. COLLECTIONS FRAMEWORK. 1. INLEIDING.
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Hoofdstuk 5 – Object Based Programmeren
1 HOOFDSTUK 5 CONTROLESTRUCTUREN (DEEL 2) 5.1. INTRODUCTIE  Vervolg discussie omtrent gestructureerd programmeren  Introductie van de overblijvende controlestructuren.
Visual Basic.Net - Overzicht
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Beginselen van C opgaves… volgende week: ARM.
Geheugen, distributie en netwerken Netwerken: de basis voor distributie van gegevens en taken (processen) –bestaan zo’n 40 jaar, zeer snelle ontwikkeling.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Hoofdstuk 9 Objecten en klassen.
Hoorcollege 9 Jewel Jam The revenge. Hierarchie van game objecten Game object (lijst) Game object (grid) Game object (lijst) Game object.
Introductie tot de SEESCOA methodologie en de Draco Runtime omgeving Yves Vandewoude Peter Rigole.
Internetapplicaties - IV Collecties 1 Internetapplicaties Deel 4: Java hulpklassen: Collecties.
Deel XIX Security, Servlets & authenticatie 1 Internetapplicaties Deel XIX: Security, Servlets & Authenticatie.
Writing exercise This one goes into your language portfolio!!! You have until the end of the week to hand it in… (So you have a little longer than it says.
Hoofdstuk 10.1 Toepassing: Bitmap-editor. nKlik punten op scherm nPlaatje verschuiven left, right, up, down nPlaatje bewerken clear, invert, bold, outline.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
The beast has been released! 4 arcade-style games Interviews with famous people in the game industry Develop browsers games for any device (phone, tablet,
1 OMI Modelleren van content. 2 Vocabulary Content “gevangen” in begrippenapparaat: Vocabulary: lijst met termen nauwelijks semantiek Ontology:
Inleiding tot programmeren
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”
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
Informatie beoordelen If else Switch En Wiskunde.
Game Object Structuren
Objectgeoriënteerd Programmeren (2)
OOS Object geOrienteerd Software-ontwerp - 5
Game: omgaan met tijd (Jewel-Jam)
Transcript van de presentatie:

Algoritmiek Class Hierarchies, Inheritance. Hoorcollege 12 - Ma. 20 nov L.M. Bosveld-de Smet

Kerneigenschappen van O-O design Abstraction: abstractie Encapsulation: inkapseling Inheritance: overerving Polymorphism: veelvormigheid Interface

Hergebruik van code Packages: bibliotheken van klassen Geleverd bij programmeertaal Geleverd door programmeurs Hergebruik van bestaande klassen in nieuwe klassen

Hierarchische structuur vervoer wegvervoer personenvervoer goederenvervoer vierwielerstweewielers autobusambulancefietsscootermotor vrachtwagentractorcontainerwagen

Hierarchie van personen

Hierarchie van klassen in Java superclass subclasses Class data fields & methods

“is een” versus “heeft (een)” verband Auto Is een vierwieler Is een vervoersmiddel voor personen Is een vervoersmiddel voor de weg Heeft een motor Heeft een ruitenwisser Heeft wielen

Java’s implementatie public class Car extends MotorVehicle { Wheels[] w = new Wheels[4]; … }

Inheritance: overerving vadermoeder jij

Class hierarchie en Inheritance shape ellipse circle rectangle polygon square triangle

Inheritance Tree superclass/ancestor Subclasses/descendants parent children

Terminologie Inheritance, derivation, extension Single inheritance Multiple inheritance Superclass: base class Subclass: derived class Parent/Child class Ancestor/Descendant class

Inheritance: impliciete overdracht van data fields en methods van superclass naar subclass

Nut van class hierarchie (1)

Nut van class hierarchie (2)

Hierarchie van Employee classes NewEmployee Object HourlyEmployeeSalaryEmployee

Data fields and Methods name, socSecNum, jobTitle, address, phoneNumber, age, startYear, totalPay setName(), setSocial(), setJob, setAddress(), setPHone(), setAge(), setStartYear(), setTotalPay(), getName(), getSocial(), getJob, getAddress(), getPhone(), getAge(), getStartYear(), getTotalPay(), calcYearsService(), calcYearsToRetire(), equals(), updateTotalPay(), toString() NewEmployee (Subclass of Object) name, etc. annualSalary setName(), etc. setSalary(), getSalary(), calcWeeklyPay(), toString() name, etc. hours, rate setName(), etc. setHours(), setRate(), getHours(), getRate(), calcWeeklyPay(), toString() HourlyEmployee (Subclass of NewEmployee) SalaryEmployee(Subclass of NewEmployee)

Sample run class TestEmployeeClasses

Operaties in een class hierarchie “Method Overloading” “Method Overriding” Zichtbaarheid van afgeschermde data fields Protected data fields Prefix this Prefix super Assignments in een class hierarchie “Casting” in een class hierarchie Objecten als argumenten doorgeven instanceof operator

Assignments in een class hierarchie: Object en NewEmployee objecten Object obj; NewEmployee anEmp = new NewEmployee(“Sam”, “1111”) Sam 1111 ……………… null anEmp obj

Assignment in een class hierarchie: HourlyEmployee object HourlyEmployee hourEmp = new HourlyEmployee(“Sally”, “2222”) Sally 2222 ……………… hourEmp hours rate

Assignment in een class hierarchie: SalaryEmployee object SalaryEmployee salEmp = new SalaryEmployee(“Tony”, “2345”) Tony 2345 ……………… salEmp annualSalary

Assignments in een class hierarchie: superclass type en subclass type Sam 1111 ……………… null anEmp obj Object type NewEmployee type

Assignment in een class hierarchie: toekenning van NewEmployee type aan Object type obj = anEmp; System.out.println (obj.toString()); name:Sam, social security:1111, job:, address:, phone:, age:0, year started:0, total pay:$0.0 Sam 1111 ……………… anEmp obj

Assignment in een class hierarchie: toekenning van HourlyEmployee type aan type anEmp = hourEmp; System.out.println (anEmp.toString()); name:Sam, social security:1111, job:, address:, phone:, age:0, year started:0, total pay:$0.0, weekly hours:0.0, hourly rate: $0.0 Sally 2222 ……………… hourEmp hours rate anEmp

Assignments in een class hierarchie: Toekenning van type aan hoger type is toegstaan: assignment “up the tree”: YES Toekenning van type aan lager type is niet toegestaan: assignment “down the tree”: NO hourEmp = anEmp;//incompatible types salEmp = anEmp;//incompatible types Sam 1111 ……………… anEmp hourEmp salEmp NO

“Casting down” in een class hierarchy hourEmp = anEmp; //incompatible types hourEmp = (HourlyEmployee) anEmp; “Assignment down the tree” is toegestaan, als het toe te kennen object gecast wordt naar het goede type en naar het overeenkomstige type verwijst Sally 2222 ……………… hourEmp hours rate anEmp

Objecten aan argumenten doorgeven // postcondition: returns true if this object // has the same security number as the argument. public boolean equals (NewEmployee emp) { return this.socSecNum.equals(emp.socSecNum); } if (clerk.equals (supervisor)) System.out.println (clerk.getName() + " and " + supervisor.getName() + " are same eployee."); else System.out.println (clerk.getName() + " and " + supervisor.getName() + " are different employees.");

instanceof operator public boolean equals (Object emp) { if (emp instanceof NewEmployee) { NewEmployee temEmp = (NewEmployee) emp; return this.socSecNum.equals (temEmp.socSecNum); } else { return false; }