การออกแบบและพัฒนา ซอฟต์แวร์ บทที่ 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
Click ( )
Object Person Post Office Deliver (Mail) Deliver Send Mail
Object Person Vending Machine Buy Pepsi Sell (10 Baht, Pepsi) Sell
Object PersonElevator Go to 3 rd floor MoveToFloor (3) 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 B Somchai Saetung 7146 Suranivet 7 etc… RegisterForCourse DropCourse etc...
Student1 B Somchai Saetung 7146 Suranivet 7 etc… RegisterForCourse DropCourse etc... Student StudentID FirstName LastName Address etc… RegisterForCourse DropCourse etc...
Object-Oriented Concept Object & Class Inheritance Polymorphism Encapsulation Class Relationship
Inheritance Animal DogPersonCat
Inheritance Land Vehicle TruckCarBus
Inheritance Transaction Rental Transaction Lease Transaction Sales Transaction
Inheritance Class Hierarchy Sub Class Super Class Reusability Overriding
Inheritance Land Vehicle Car Toyota TruckBus ViosAltisCamry
Transaction transNo transDate transTime etc… Rental Transaction Lease Transaction Sales Transaction transNo transDate transTime etc… quantitySold… transNo transDate transTime etc… memberNo… transNo transDate transTime etc… 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()
Polymorphism Overloading
Object-Oriented Concept Object & Class Inheritance Polymorphism Encapsulation Class Relationship
Encapsulation Abstraction Information Hiding Security
Encapsulation Student StudentID: B FirstName: Somchai LastName: Saetung Courses Registered: [204204], [204203] etc… DropCourse SetName GetName etc...
Encapsulation Person Vending Machine Buy Pepsi Sell (10 Baht, Pepsi) Sell
Object-Oriented Concept Object & Class Inheritance Polymorphism Encapsulation Class Relationship
Association Aggregation Composition Generalization
Class Relationship Association PilotPlanes
Class Relationship Association –Son – Father –Customer – Operator –User - Computer
Class Relationship Composition Car SeatWheelEngine
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 ClassroomStudent
Class Relationship Aggregation –Classroom – Student –Keyboard – Key –Notebook – Paper –Computer – Monitor, CPU, Keyboard
Class Relationship Generalization Land Vehicle TruckCarBus
Class Relationship Generalization –Car – Mercedes-Benz, BMW, Lexus – Animal – Cat, Rat, Dog
Introduction to Object-Oriented Software Design