Upload
meaw-sukee
View
227
Download
0
Embed Size (px)
DESCRIPTION
โปรแกรมแบบ OOP
Citation preview
วิวฒันาการของเทคนคิการเขยีนโปรแกรมวิวฒันาการของเทคนคิการเขยีนโปรแกรมวิวฒันาการของเทคนคิการเขยีนโปรแกรมวิวฒันาการของเทคนคิการเขยีนโปรแกรม
• ป 1950 เขียนโปรแกรมโดยการโยกสวิตซไฟฟา ทําใหเกิดรหัส 0 และ 1
• เขียนโปรแกรมดวยภาษาแอสเซมบลี้
• เขียนโปรแกรมดวยภาษาภาษาระดับสูง ภาษาแรก คือ ฟอรแทนเขียนโปรแกรมดวยภาษาภาษาระดับสูง ภาษาแรก คือ ฟอรแทน
• structured programming เปนลักษณะโปรแกรมทํางานอะไร มากกวาโปรแกรมทํางานอยางไร เชน pascal,cobol,turbo,basic
• OOP (object oriented programming) การเขียนโปรแกรมเชิงวตัถุ ชวยลดความซับซอนของโปรแกรม
ความหมายของความหมายของความหมายของความหมายของ OOPOOPOOPOOP
• OOP (Object Oriented Programming) OOP (Object Oriented Programming) OOP (Object Oriented Programming) OOP (Object Oriented Programming) เปนวิธีการเขียนโปรแกรมซึ่งจัดดําเนินการกับกลุมของ ออบเจ็กต ที่มีอยูในโปรแกรม
• ออบเจก็ตออบเจก็ตออบเจก็ตออบเจก็ต เปนชนิดของขอมูล ประกอบไปดวยกลุมของ ขอมลู ขอมลู ขอมลู ขอมลู ((((data) data) data) data) และกลุมของฟงกชนั ฟงกชนั ฟงกชนั ฟงกชนั (function)(function)(function)(function)และกลุมของฟงกชนั ฟงกชนั ฟงกชนั ฟงกชนั (function)(function)(function)(function)
• ออบเจก็ตออบเจก็ตออบเจก็ตออบเจก็ต เปนสมาชิกของ ตัวแปรคลาส (class variable) มีลักษณะเปนโมดูล ประกอบดวยตัวแปร ชนิดตางๆ ที่สมัพันธกัน
• คลาสคลาสคลาสคลาส จะหอหุมขอมูลและฟงกชันรวมไวดวยกันเรียกวา encapsulationencapsulationencapsulationencapsulation
คณุสมบตัิของ คณุสมบตัิของ คณุสมบตัิของ คณุสมบตัิของ OOPOOPOOPOOP
• 1. มีการรวบรวมขอมูลเขากับฟงกชัน (encapsulation) มีสวนประกอบ และการทํางาน สามารถใชงานไดทันที
• 2. การสืบทอด (inheritance) จากพอแมสูลูก• 2. การสืบทอด (inheritance) จากพอแมสูลูก
• 3. มีหลายรูปแบบ (polymorphism) คือ คุณสมบัติออบเจ็กตตางๆ เมื่อรับคําสั่งเดียวกัน จะทํางานตามแบบของตัวเอง
ความหมายของ ความหมายของ ความหมายของ ความหมายของ objectobjectobjectobject
• Object หมายถึง สิ่งของหรือวัตถุเปาหมาย ประกอบดวย กลุมขอมูลและกลุมของฟงชัน
objectobjectobjectobject
วิธสีรางคลาสวิธสีรางคลาสวิธสีรางคลาสวิธสีรางคลาส (class)(class)(class)(class) ตนกาํเนดิของออบเจก็ตตนกาํเนดิของออบเจก็ตตนกาํเนดิของออบเจก็ตตนกาํเนดิของออบเจก็ต
• Object ตองสรางขึ้นจากขอมูลชนิด class ซึ่งมีโครงสรางดังภาพโครงสรางดังภาพ
รปูแบบของการสรางชนิดขอมลู รปูแบบของการสรางชนิดขอมลู รปูแบบของการสรางชนิดขอมลู รปูแบบของการสรางชนิดขอมลู classclassclassclass
classclassclassclass• Class เปนขอมูลแบบ structure ประกอบไปดวยสมาชิกที่เรียกวา
class member มีสมาชิกอยู 2 ประเภท คือ
• 1. data member หรือกลุมสมาชิกของคลาส อาจเรียกวา 1. data member หรือกลุมสมาชิกของคลาส อาจเรียกวา member variable , data item
• 2. member function หรือกลุมของฟงกชันที่เปนสมาชิกของคลาส อาจเรียกวา method, behavior
• Private:Private:Private:Private: หมายถึง ชื่อของ data member และ member function จะเรียกใชไดภายในคลาสนี้เทานั้น
• Public:Public:Public:Public: หมายถึง ชื่อของ data member และ member function จะเรียกใชไดภายนอกคลาสไดจะเรียกใชไดภายนอกคลาสได
• Protected:Protected:Protected:Protected: หมายถึง ชื่อของ data member และ member function จะเรียกใชไดเฉพาะในคลาส และในคลาสที่สืบทอดตอๆ กันไปเทานั้น
รูปแบบการสราง member function
• รูปแบบที ่รูปแบบที ่รูปแบบที ่รูปแบบที ่1 1 1 1
– กําหนดรายละเอียดของ member function ตอจากฟงกชัน main() ชื่อคลาส ใชเครื่องหมายแบงแยกขอบเขต :: (scope main() ชื่อคลาส ใชเครื่องหมายแบงแยกขอบเขต :: (scope resolution operator)
• รูปแบบที ่รูปแบบที ่รูปแบบที ่รูปแบบที ่ 2222
– กําหนดรายละเอียดของ member function กอนฟงกชัน main และอยูภายนอกคลาส ชื่อคลาสใชเครื่องหมายแบงแยกขอบเขต :: (scope resolution operator):: (scope resolution operator)
• รูปแบบที่ รูปแบบที่ รูปแบบที่ รูปแบบที่ 3 3 3 3 – กําหนดรายละเอียดของ member function อยูภายในคลาส
ไมตองเขียนชื่อคลาส และไมตองเขียนเครื่องหมายแบงแยกไมตองเขียนชื่อคลาส และไมตองเขียนเครื่องหมายแบงแยกขอบเขต
การสรางและเรียกใชออบเจก็ตจากคลาสการสรางและเรียกใชออบเจก็ตจากคลาสการสรางและเรียกใชออบเจก็ตจากคลาสการสรางและเรียกใชออบเจก็ตจากคลาส
• กอนที่จะสรางออบเจ็กตใชในโปรแกรมไดจะตองสรางคลาสใหถูกตองกอน เพราะ คลาส เปนตนกําหนดของออบเจ็กต
• คลาสตองกําหนด data member และ member function• คลาสตองกําหนด data member และ member function
• เขียน code ของ member function ใหสมบูรณ
คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด (inheritance)(inheritance)(inheritance)(inheritance)
• การสืบทอด การสืบทอด การสืบทอด การสืบทอด เปนคุณสมบัติสําคัญของการเขียนโปรแกรมเชิงวัตถุ
• ancestorancestorancestorancestor หรอื หรอื หรอื หรอื base classbase classbase classbase class เปนการถายทอดคุณสมบัติตางๆ ของออบเจ็กตที่เปนตนกําเนิด
• DesendantDesendantDesendantDesendant หรอื หรอื หรอื หรอื derived classderived classderived classderived class เปนลูกหลานหรือผูสืบทอด
• ทําใหเกิดความสัมพันธระหวางคลาสและออบเจ็กต
คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด (inheritance)(inheritance)(inheritance)(inheritance)
• Derived classDerived classDerived classDerived class จะสืบทอดคุณสมบัติทั้งหมดของ data member และ member function ที่มีอยูใน base class ยกเวน constructor และ distructorconstructor และ distructor
ความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวาง base class base class base class base class กบักบักบักบั derived classderived classderived classderived class
ความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวาง base class base class base class base class กบักบักบักบั derived classderived classderived classderived class
ความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวาง base class base class base class base class กบักบักบักบั derived classderived classderived classderived class
รูปแบบของการสรางรูปแบบของการสรางรูปแบบของการสรางรูปแบบของการสราง derived classderived classderived classderived class