28

โปรแกรมแบบ OOP

Embed Size (px)

DESCRIPTION

โปรแกรมแบบ OOP

Citation preview

Page 1: โปรแกรมแบบ OOP
Page 2: โปรแกรมแบบ OOP

วิวฒันาการของเทคนคิการเขยีนโปรแกรมวิวฒันาการของเทคนคิการเขยีนโปรแกรมวิวฒันาการของเทคนคิการเขยีนโปรแกรมวิวฒันาการของเทคนคิการเขยีนโปรแกรม

• ป 1950 เขียนโปรแกรมโดยการโยกสวิตซไฟฟา ทําใหเกิดรหัส 0 และ 1

• เขียนโปรแกรมดวยภาษาแอสเซมบลี้

• เขียนโปรแกรมดวยภาษาภาษาระดับสูง ภาษาแรก คือ ฟอรแทนเขียนโปรแกรมดวยภาษาภาษาระดับสูง ภาษาแรก คือ ฟอรแทน

• structured programming เปนลักษณะโปรแกรมทํางานอะไร มากกวาโปรแกรมทํางานอยางไร เชน pascal,cobol,turbo,basic

• OOP (object oriented programming) การเขียนโปรแกรมเชิงวตัถุ ชวยลดความซับซอนของโปรแกรม

Page 3: โปรแกรมแบบ OOP

ความหมายของความหมายของความหมายของความหมายของ 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

Page 4: โปรแกรมแบบ OOP

คณุสมบตัิของ คณุสมบตัิของ คณุสมบตัิของ คณุสมบตัิของ OOPOOPOOPOOP

• 1. มีการรวบรวมขอมูลเขากับฟงกชัน (encapsulation) มีสวนประกอบ และการทํางาน สามารถใชงานไดทันที

• 2. การสืบทอด (inheritance) จากพอแมสูลูก• 2. การสืบทอด (inheritance) จากพอแมสูลูก

• 3. มีหลายรูปแบบ (polymorphism) คือ คุณสมบัติออบเจ็กตตางๆ เมื่อรับคําสั่งเดียวกัน จะทํางานตามแบบของตัวเอง

Page 5: โปรแกรมแบบ OOP

ความหมายของ ความหมายของ ความหมายของ ความหมายของ objectobjectobjectobject

• Object หมายถึง สิ่งของหรือวัตถุเปาหมาย ประกอบดวย กลุมขอมูลและกลุมของฟงชัน

Page 6: โปรแกรมแบบ OOP

objectobjectobjectobject

Page 7: โปรแกรมแบบ OOP

วิธสีรางคลาสวิธสีรางคลาสวิธสีรางคลาสวิธสีรางคลาส (class)(class)(class)(class) ตนกาํเนดิของออบเจก็ตตนกาํเนดิของออบเจก็ตตนกาํเนดิของออบเจก็ตตนกาํเนดิของออบเจก็ต

• Object ตองสรางขึ้นจากขอมูลชนิด class ซึ่งมีโครงสรางดังภาพโครงสรางดังภาพ

Page 8: โปรแกรมแบบ OOP

รปูแบบของการสรางชนิดขอมลู รปูแบบของการสรางชนิดขอมลู รปูแบบของการสรางชนิดขอมลู รปูแบบของการสรางชนิดขอมลู classclassclassclass

Page 9: โปรแกรมแบบ OOP

classclassclassclass• Class เปนขอมูลแบบ structure ประกอบไปดวยสมาชิกที่เรียกวา

class member มีสมาชิกอยู 2 ประเภท คือ

• 1. data member หรือกลุมสมาชิกของคลาส อาจเรียกวา 1. data member หรือกลุมสมาชิกของคลาส อาจเรียกวา member variable , data item

• 2. member function หรือกลุมของฟงกชันที่เปนสมาชิกของคลาส อาจเรียกวา method, behavior

Page 10: โปรแกรมแบบ OOP

• Private:Private:Private:Private: หมายถึง ชื่อของ data member และ member function จะเรียกใชไดภายในคลาสนี้เทานั้น

• Public:Public:Public:Public: หมายถึง ชื่อของ data member และ member function จะเรียกใชไดภายนอกคลาสไดจะเรียกใชไดภายนอกคลาสได

• Protected:Protected:Protected:Protected: หมายถึง ชื่อของ data member และ member function จะเรียกใชไดเฉพาะในคลาส และในคลาสที่สืบทอดตอๆ กันไปเทานั้น

Page 11: โปรแกรมแบบ OOP
Page 12: โปรแกรมแบบ OOP

รูปแบบการสราง member function

• รูปแบบที ่รูปแบบที ่รูปแบบที ่รูปแบบที ่1 1 1 1

– กําหนดรายละเอียดของ member function ตอจากฟงกชัน main() ชื่อคลาส ใชเครื่องหมายแบงแยกขอบเขต :: (scope main() ชื่อคลาส ใชเครื่องหมายแบงแยกขอบเขต :: (scope resolution operator)

Page 13: โปรแกรมแบบ OOP
Page 14: โปรแกรมแบบ OOP

• รูปแบบที ่รูปแบบที ่รูปแบบที ่รูปแบบที ่ 2222

– กําหนดรายละเอียดของ member function กอนฟงกชัน main และอยูภายนอกคลาส ชื่อคลาสใชเครื่องหมายแบงแยกขอบเขต :: (scope resolution operator):: (scope resolution operator)

Page 15: โปรแกรมแบบ OOP
Page 16: โปรแกรมแบบ OOP

• รูปแบบที่ รูปแบบที่ รูปแบบที่ รูปแบบที่ 3 3 3 3 – กําหนดรายละเอียดของ member function อยูภายในคลาส

ไมตองเขียนชื่อคลาส และไมตองเขียนเครื่องหมายแบงแยกไมตองเขียนชื่อคลาส และไมตองเขียนเครื่องหมายแบงแยกขอบเขต

Page 17: โปรแกรมแบบ OOP
Page 18: โปรแกรมแบบ OOP

การสรางและเรียกใชออบเจก็ตจากคลาสการสรางและเรียกใชออบเจก็ตจากคลาสการสรางและเรียกใชออบเจก็ตจากคลาสการสรางและเรียกใชออบเจก็ตจากคลาส

• กอนที่จะสรางออบเจ็กตใชในโปรแกรมไดจะตองสรางคลาสใหถูกตองกอน เพราะ คลาส เปนตนกําหนดของออบเจ็กต

• คลาสตองกําหนด data member และ member function• คลาสตองกําหนด data member และ member function

• เขียน code ของ member function ใหสมบูรณ

Page 19: โปรแกรมแบบ OOP

คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด (inheritance)(inheritance)(inheritance)(inheritance)

• การสืบทอด การสืบทอด การสืบทอด การสืบทอด เปนคุณสมบัติสําคัญของการเขียนโปรแกรมเชิงวัตถุ

• ancestorancestorancestorancestor หรอื หรอื หรอื หรอื base classbase classbase classbase class เปนการถายทอดคุณสมบัติตางๆ ของออบเจ็กตที่เปนตนกําเนิด

• DesendantDesendantDesendantDesendant หรอื หรอื หรอื หรอื derived classderived classderived classderived class เปนลูกหลานหรือผูสืบทอด

• ทําใหเกิดความสัมพันธระหวางคลาสและออบเจ็กต

Page 20: โปรแกรมแบบ OOP

คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด คณุสมบัตกิารสืบทอด (inheritance)(inheritance)(inheritance)(inheritance)

• Derived classDerived classDerived classDerived class จะสืบทอดคุณสมบัติทั้งหมดของ data member และ member function ที่มีอยูใน base class ยกเวน constructor และ distructorconstructor และ distructor

Page 21: โปรแกรมแบบ OOP

ความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวาง base class base class base class base class กบักบักบักบั derived classderived classderived classderived class

Page 22: โปรแกรมแบบ OOP

ความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวาง base class base class base class base class กบักบักบักบั derived classderived classderived classderived class

Page 23: โปรแกรมแบบ OOP

ความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวางความสัมพนัธระหวาง base class base class base class base class กบักบักบักบั derived classderived classderived classderived class

Page 24: โปรแกรมแบบ OOP

รูปแบบของการสรางรูปแบบของการสรางรูปแบบของการสรางรูปแบบของการสราง derived classderived classderived classderived class

Page 25: โปรแกรมแบบ OOP
Page 26: โปรแกรมแบบ OOP
Page 27: โปรแกรมแบบ OOP
Page 28: โปรแกรมแบบ OOP