De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Algoritmiek Class Hierarchies, Inheritance. Hoorcollege 12 - Ma. 20 nov. 2006 L.M. Bosveld-de Smet."— Transcript van de presentatie:

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

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

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

4 Hierarchische structuur vervoer wegvervoer personenvervoer goederenvervoer vierwielerstweewielers autobusambulancefietsscootermotor vrachtwagentractorcontainerwagen

5 Hierarchie van personen

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

7 “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

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

9 Inheritance: overerving vadermoeder jij

10 Class hierarchie en Inheritance shape ellipse circle rectangle polygon square triangle

11 Inheritance Tree superclass/ancestor Subclasses/descendants parent children

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

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

14 Nut van class hierarchie (1)

15 Nut van class hierarchie (2)

16 Hierarchie van Employee classes NewEmployee Object HourlyEmployeeSalaryEmployee

17 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)

18 Sample run class TestEmployeeClasses

19 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

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

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

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

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

24 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

25 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

26 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

27 “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

28 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.");

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


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

Verwante presentaties


Ads door Google