Page 13 - เอกสารประกอบการสอนการโปรแกรมคอมพิวเตอร์
P. 13
2.2.2 การจัดข้อมูลที่ไม่เกี่ยวข้องทิ้งไปให้เหลือข้อมูลที่ต้องการเท่านั้น (Abstraction) การ
แทนวัตถุที่มีอยู่ในโลกความเป็นจริงลงในระบบคอมพิวเตอร์ ต้องพิจารณาถึงคุณสมบัติที่สาคัญของ
วัตถุเท่านั้น เป็นไปไม่ได้ที่จะพิจารณาคุณสมบัติทุกข้อมาของวัตถุที่มีอยู่จริง ตัวอย่างเช่นการแทน
์
คุณสมบัติของมนุษย์ลงในระบบคอมพิวเตอร มนุษย์มีคุณสมบัติหลายอย่างเช่น เป็นสิ่งมีชีวิต กิน
อาหารได้ ขับถ่ายได้ แต่หากมนุษย์ที่เป็นสมาชิกของร้านวิดีโอแห่งหนึ่ง ข้อมูลของมนุษย์ที่ว่ามนุษย์
เป็นสิ่งมีชีวิต หรือ กินอาหารได้ เป็นข้อมูลที่ไม่เกี่ยวข้องกับสมาชิกของร้านวีดีโอนี้เลย ข้อมูลที่
เกี่ยวข้องอาจเป็น หมายเลขสมาชิก ชื่อ นามสกุล อายุ รายการหนังที่ยืมไป ยอดค้างชาระเป็นต้น
ดังนั้น Abstraction เป็นวิธีการมองวัตถุโดยพิจารณาว่า มีคุณสมบัติใดบ้างที่จะแทนวัตถุนั้นโดย
พิจารณาคุณสมบัติที่เกี่ยวข้องกับวัตถุสาหรับในการแก้ปัญหาใดปัญหาหนึ่งเท่านั้น
2.2.3 การเข้ารวมเป็นส่วนหนึ่งของวัตถุ (Encapsulation) เป็น องค์ประกอบที่ส าคัญอีก
็
ประการหนึ่งของ OOP ซึ่งหมายถึงการน าการปฏิบัติการ (Operation) รวมเปนส่วนหนึ่งของวัตถุ
เหตุที่เป็นเช่นนี้เพราะว่าต้องการซ่อนข้อมูลของวัตถุไว้ ผู้ใช้งานไม่จาเป็นต้องทราบถึงรายละเอียด
ต่างๆของวัตถุนั้น เพียงทราบถึงวิธีการจะใช้วัตถุนั้นก็เพียงพอ ตัวอย่างเช่น การใช้งานเครื่องรับ
็
โทรทัศน์ ผใช้งานไม่จาเปนต้องเข้าใจถึงวงจรไฟฟ้าภายในเครื่องรับโทรทัศน์ว่ามีการทางานอย่างไร
ู้
แต่ต้องเข้าใจว่าจะเปิด ปิด หรือเปลี่ยนช่อง อย่างไรก็เพียงพอ ข้อดีคือทาให้ การปฏิบัติการของวัตถุ
นั้นไม่สามารถนาไปใช้กับวัตถุอื่นได้ ทาให้มีความปลอดภัยเพิ่มมากขึ้น เช่น ผู้ใช้งานคงไม่อยากให้
กุญแจควบคุมระยะไกลของรถยนต์ของผู้อื่นสามารถเปิดประตูรถยนต์ของผู้ใช้งานได้
2.2.4 การสร้างคลาสใหม่จากคลาสเดิม (Inheritance)ที่มีอยู่แล้ว และมีการถ่ายทอด
คุณสมบัติของคลาสเดิมมา (คาดว่าคุณสมบัติรวมถึง Method คลาสเดิมมีด้วย) และในคลาสใหม่
สามารถเพิ่มเติมคุณสมบัติที่ไม่มีในคลาสแม่ได้ด้วย จากตัวอย่างของคลาส Vehicle จะเห็นว่ารถทุก
คันอยู่ในคลาสเดียวกัน รถยนต์แต่ละชนิดจะมีคุณสมบัติบางส่วนทเหมือนกันเช่น มีล้อทเป็นวงกลม
ี่
ี่
ี
การเคลื่อนที่ไปข้างหน้าและการหยุดรถ เป็นต้น แต่ในความเป็นจริงแล้วถ้าเปรียบเทยบรถชนิด
Sport และ Truck จะเห็นความแตกต่างบางประการเช่น รถชนิด Sport สามารถเปิดปะทุน (Sun
Roof) ได้ และรถชนิด Truck สามารถดัมพ์ของที่บรรทุกมาได้ เช่น ทราย ดิน ดังนั้น Inheritance
ี่
้
เปิดโอกาสให้ผู้เขียนโปรแกรมสามารถน าคุณสมบัติทมีอยู่จากคลาสเดิมมาสรางคลาสใหม่ได้ และยัง
สามารถเพิ่มคุณสมบัติอื่นๆ ได้
2.2.5 การอนุญาตตั้งชื่อฟังก์ชันให้ซ้ ากันได้(Polymorphism) แบ่งออกเป็น 2 ประเภทคือ
Overloading และ Overriding
1. Overloading เป็นการใช้ชื่อของ Method สามารถซ้ ากันได้ แต่ Argument ไม่
สามารถซ้ ากันได้ โดยตัวแปลภาษาจะเลือกว่า Method ใดเหมาะสมที่สุดในการเรียกใช้งานเอง
2. Overriding เป็น Polymorphism อีกชนิดหนึ่งซึ่งเกี่ยวข้องกับการ Inheritance ใน
กรณีที่คลาสแม่มี Method A ที่เหมือนกับคลาสลูก ถ้าเรียกใช้ Method A นี้จากคลาสลูก Method
A ในคลาสลูกจะทางาน ในทางตรงข้ามกันถ้าเรียกใช้ Method A จากคลาสแม่ Method A ในคลาส
แม่จะทางาน แนวคิดของ Overriding เหมือนวัตถุที่มีอยู่ในความเป็นจริง
เอกสารประกอบการสอนวิชาการโปรแกรมคอมพิวเตอร์ นาย นิรันดร์ ชุมสาย ณ อยุธยา