การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 8 ...
description
Transcript of การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 8 ...
การออกแบบและพัฒนาซอฟต์�แวร�
บทท�� 8 Object-Oriented Software Designปริ�ญญา น้�อยดอน้ไพริ
สาขาวิ�ชาวิ�ทยาการิคอมพ�วิเตอริ� คณะวิ�ทยาศาสตริ�และเทคโน้โลย�
มหาวิ�ทยาล!ยริาชภั!ฏส$ริาษฎริ�ธาน้�
Object-Oriented Software Design
• Object-Oriented Concept• Introduction to Object-Oriented
Software Design
Object-Oriented Concept
• Object & Class• Inheritance (การสื�บทอด)• Polymorphism• Encapsulation• Class Relationship
Introduction to Object-Oriented Software Design
Object-Oriented Concept
• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship
Object
• Object World• Message• Method/Operation• Interface• Event• Responsibilities
Object
Object
Click ( )
Object
Person Post OfficeDeliver (Mail)
DeliverSend Mail
Object
Person Vending Machine
Buy Pepsi
Sell (10 Baht, Pepsi)
Sell
Object
Person Elevator
Go to 3rd floor
MoveToFloor (3)
MoveToFloorOpenClose
Class
Person
Somchai
Somsri
Somsak
Somying
Class
Student
Somchai
Somsri
Somsak
Somying
Class
Tennis Player
Paradorn
Venus
Marat
Martina
Class
Institute
Social Technology
Engineering
Science
Agricultural Technology
Class
• Template• Name• Attributes• Operations• Responsibilities
Class
Name
Attributes
Operations
Responsibilities
ClassStudent
StudentIDFirstNameLastNameAddressetc…RegisterForCourseDropCourseetc...
ClassTennis Player
FirstNameLastNameNationalityRankingetc…RegisterForTournamentetc...
ClassCar
Car Reg. NumberMakerModelColoretc…AccelerateStopetc...
ClassAirplane
Plane NumberManufacturerModeletc…TakeOffLandingetc...
Object & Class
Student
Somchai
Somsri
Somsak
Somying
Object & Class
Student
Somchai
Somsri
Somsak
Somying
Student
StudentIDFirstNameLastNameAddressetc…
RegisterForCourseDropCourseetc...
Object & Class
Student
Somchai
Somsri
Somsak
Somying
Student1
B4555555SomchaiSaetung7146 Suranivet 7etc…
RegisterForCourseDropCourseetc...
Student1B4555555SomchaiSaetung7146 Suranivet 7etc…RegisterForCourseDropCourseetc...
StudentStudentIDFirstNameLastNameAddressetc…RegisterForCourseDropCourseetc...
Object-Oriented Concept
• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship
Inheritance
Animal
Dog PersonCat
Inheritance
Land Vehicle
Truck CarBus
Inheritance
Transaction
Rental Transaction
Lease Transaction
Sales Transaction
Inheritance
• Class Hierarchy• Sub Class• Super Class• Reusability• Overriding
Inheritance
Land Vehicle
Car
Toyota
TruckBus
Vios Altis Camry
TransactiontransNotransDatetransTimeetc…
Rental Transaction
Lease Transaction
Sales TransactiontransNotransDatetransTimeetc…quantitySold…
transNotransDatetransTimeetc…memberNo…
transNotransDatetransTimeetc…duration…
Object-Oriented Concept
• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship
Polymorphism
DrawChart
DrawChart(1)
DrawChart(1,2,1,2)
DrawChart(1,1,1)DrawTriangle(1,1,1)
DrawRect(1,2,1,2)
DrawCircle(1)
Polymorphism
• Add(integer, integer)• Add(string, string)• Add(string, integer)
Add(1,1) 2 Add(“Hello”, “World”) “HelloWorld” Add(“Hello”, 2) “Hello2” Add(2, “Hello”) ?
Polymorphism
:PaySlip
:HourlyPaidEmployee
:WeeklyPaidEmployee
:MonthlyPaidEmployee
getTotalPay()
calculatePay()
calculatePay()
calculatePay()
Polymorphism
• Overloading
Object-Oriented Concept
• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship
Encapsulation
• Abstraction• Information Hiding• Security
EncapsulationStudent
StudentID: B4555555FirstName: SomchaiLastName: SaetungCourses Registered: [204204], [204203] etc…
DropCourseSetNameGetNameetc...
Encapsulation
Person Vending Machine
Buy Pepsi
Sell (10 Baht, Pepsi)
Sell
Object-Oriented Concept
• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship
Class Relationship
• Association• Aggregation• Composition• Generalization
Class Relationship
• Association
Pilot Planes
Class Relationship
• Association– Son – Father– Customer – Operator– User - Computer
Class Relationship
• Composition
Car
Seat WheelEngine
Class Relationship
• Composition– Car – Wheel, Engine, Seat– House – Window, Roof, Door, Wall– Computer – Monitor, CPU, Keyboard– Building – Rooms – Circle – Points– Book - Chapter
Class Relationship
• Aggregation
Classroom Student
Class Relationship
• Aggregation– Classroom – Student– Keyboard – Key– Notebook – Paper– Computer – Monitor, CPU, Keyboard
Class Relationship
• Generalization
Land Vehicle
Truck CarBus
Class Relationship
• Generalization– Car – Mercedes-Benz, BMW, Lexus– Animal – Cat, Rat, Dog
Introduction to Object-Oriented Software Design