1 - freebsd - มหาวิทยาลัยราชภัฏสุราษฎร์ธานี

ซอฟต์แวร์ พฒ
ั นาระบบฐานข้ อมูล
บทที่ 10 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
Deliver (Mail)
Person
Send Mail
Post Office
Deliver
Object
Sell (10 Baht, Pepsi)
Person
Buy Pepsi
Vending
Machine
Sell
Object
MoveToFloor (3)
Person
Go to
3rd
Elevator
floor
MoveToFloor
Open
Close
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
Class
Student
StudentID
FirstName
LastName
Address
etc…
RegisterForCourse
DropCourse
etc...
Class
Tennis Player
FirstName
LastName
Nationality
Ranking
etc…
RegisterForTournament
etc...
Class
Car
Car Reg. Number
Maker
Model
Color
etc…
Accelerate
Stop
etc...
Class
Airplane
Plane Number
Manufacturer
Model
etc…
TakeOff
Landing
etc...
Object & Class
Student
Somchai
Somsri
Somsak
Somying
Object & Class
Student
Somchai
Somsri
Somsak
Somying
Student
StudentID
FirstName
LastName
Address
etc…
RegisterForCourse
DropCourse
etc...
Object & Class
Student
Somchai
Somsri
Somsak
Somying
Student1
B4555555
Somchai
Saetung
7146 Suranivet 7
etc…
RegisterForCourse
DropCourse
etc...
Student
StudentID
FirstName
LastName
Address
etc…
RegisterForCourse
DropCourse
etc...
Student1
B4555555
Somchai
Saetung
7146 Suranivet 7
etc…
RegisterForCourse
DropCourse
etc...
Object-Oriented Concept
•
•
•
•
•
Object & Class
Inheritance
Polymorphism
Encapsulation
Class Relationship
Inheritance
Animal
Cat
Dog
Person
Inheritance
Land Vehicle
Bus
Truck
Car
Inheritance
Transaction
Sales
Transaction
Rental
Transaction
Lease
Transaction
Inheritance
•
•
•
•
•
Class Hierarchy
Sub Class
Super Class
Reusability
Overriding
Inheritance
Land Vehicle
Bus
Car
Truck
Toyota
Vios
Altis
Camry
Transaction
transNo
transDate
transTime
etc…
Sales
Transaction
transNo
transDate
transTime
etc…
quantitySold…
Rental
Transaction
transNo
transDate
transTime
etc…
memberNo…
Lease
Transaction
transNo
transDate
transTime
etc…
duration…
Object-Oriented Concept
•
•
•
•
•
Object & Class
Inheritance
Polymorphism
Encapsulation
Class Relationship
Polymorphism
DrawChart(1,2,1,2)
DrawRect(1,2,1,2)
DrawChart
DrawTriangle(1,1,1)
DrawChart(1,1,1)
DrawCircle(1)
DrawChart(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
:HourlyPaidEmployee
calculatePay()

:PaySlip
getTotalPay()
:WeeklyPaidEmployee
calculatePay()
:MonthlyPaidEmployee
calculatePay()
Polymorphism
• Overloading
Object-Oriented Concept
•
•
•
•
•
Object & Class
Inheritance
Polymorphism
Encapsulation
Class Relationship
Encapsulation
• Abstraction
• Information Hiding
• Security
Encapsulation
Student
StudentID: B4555555
FirstName: Somchai
LastName: Saetung
Courses Registered: [204204], [204203]
etc…
DropCourse
SetName
GetName
etc...
Encapsulation
Sell (10 Baht, Pepsi)
Person
Buy Pepsi
Vending
Machine
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
Engine
Seat
Wheel
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
Bus
Truck
Car
Class Relationship
• Generalization
– Car – Mercedes-Benz, BMW, Lexus
– Animal – Cat, Rat, Dog
Introduction to Object-Oriented Software Design