บทที่1. วิธีคิดแบบ Object
Object type คือ กลุ่มของข้อมูลประเภทหนึ่ง ๆ ส่วน object คือ ข้อมูลชิ้นส่วนหนึ่งที่เราสนใจ และหยิบยกออกมาเป็นตัวอย่างจาก object type ทั้งหมด เช่น Object type ของ people จะมี object คือ Mr.Dang, Mr.john, Mrs. Jenny
Object type ของ car จะมี object คือ seden, truck, motorcycle


Object type ของ animal จะมี object คือ cat,dog, lion, mouse


ในทาง Object-Orient programming จะมีหลักการที่สำคัญอย่างหนึ่ง คือ ให้มองสิ่งที่เราสนใจทุกอย่างให้เป็น object ซึ่งหลักการนี้เป็นแนวคิดที่เข้าใกล้ธรรมชาติของมนุษย์มากที่สุด เนื่องจากมนุษย์มักจะมองเห็นสิ่งต่างๆ รอบตัวเป็น Object อยู่เสมอ เช่น ตั้งแต่ตื่นนอนขึ้นมาเห็นหลอดไฟบนเพดาน(หลอดไฟเป็น object) ต่อไปต้องไปล่างหน้าที่อ่างน้ำ (อ่างน้ำเป็น Object)อาบน้ำด้วยฟัก-บัว และเช็ดตัวด้วยผ้าเช็ดตัว(ฟักบัวเป็น object และผ้าเช็ดตัวเป็น object)แต่งตัวด้วย เสื้อยืดกางเกงยีน เดินลงบันไดไปกินข้าวไข่เจียวบนจานสีเขียวด้วยช้อนส้อม
ความหมายของ Object แบ่งได้เป็น 2 ประเภทคือ สิ่งที่เป็นรูปธรรมและนามธรรม ที่มีอยู่จริงบนพื้นโลก(real-world สิ่งที่มีลักษณะเป็นรูปธรรม(จับต้องได้) เช่น จักรยาน รถ สุนัข องค์กร ใบรายการสินค้า เป็นต้น
Object ทุก object จะประกอบด้วย 2 ส่วนปฏิบัติการคือ attribute และ method โดย attribute หรือเรียกได้อีกอย่างว่า data และ method ที่เรียกได้ว่า behavior จะมีรายละเอียดดังต่อไปนี้
object Data
ในทาง Object-Orientprogramming จะเรียก data ของ object ว่า attribute และการเขียนโปรแกรม ส่วน attribute ของ object จะเป็นส่วนข้อมูลลับของ object ที่จะทรายเฉพาะภายใน object เท่านั้น (จะได้ทราบต่อไปว่าทำไม)ซึ้งในที่นี้จะยกตัวอย่างบางตัวอย่างของ attribute บนobject บางส่วนดังนี้
-object คน จะมี attribute คือ หมายเลขประชาชน,วันเกิด,เพศ,เบอร์โทรศัพท์ ฯลฯ
-object สุนัข จะมี attribute คือ ชื่อ,สี,พันธุ์,อาหาร ฯลฯ
-object จักรยาน จะมี attribute คือ gear, คันเร่ง,ล้อ ฯลฯ เป็นต้น
attribute หนึ่งๆ จะทำการติดต่อกับ object อื่นได้โดยผ่าน method ของ object เท่านั้น ใน attribute หนึ่งๆ จะมีค่าได้มากกว่าหนึ่งค่า โดยค่า ของแต่ละ attribute จะคงค่าของการเปลี่ยนแปลงครั้งสุดท้ายไว้จนกว่าจะมี method ที่มาทำให้ค่านี้เปลี่ยนแปลงไป
Object Behavior
Behavior ของ object คือ สิ่งที่ object นั้นๆ สามารถทำได้ ในทาง Procedural language จะเรียกbehavior เป็น procedure, function หรือ subroutine ส่วนในทาง object oriented programming จะเรียกbehavior เป็น method วิ่ง method ก็คือ ลำดับคำสั่งในการทำงานของ computer ตัวอย่าง เช่น
object คน จะมี methods คือ การเดิน, ยืน, มีบัตรประจำตัว, มีรถ ฯลฯ
object สุนัข จะมี methods คือ การเห่า, การหายใจ, การกระดิกหาง ฯลฯ
object จักรยาน จะมี methods คือ การเบรค, การเร่ง, การชลอ, การเปลี่ยน gear ฯลฯ เป็นต้น
ภายใน object หนึ่งๆ นั้นจะประกอบด้วย attribute และ method ซึ่งได้ทราบแล้วในข้างต้น โดยโครงสร้างของ object แล้วนั้น สามารถเปรียบเทียบได้ว่าส่วนของ attribute จะได้รับการห่อหุ้ม (Encapsulate) ด้วย method ดังนั้นเมื่อ object ใดๆ ต้องการจะติดต่อกันจะต้องผ่านส่วนที่เรียกว่า method เท่านั้น จากลักษณะดังกล่าวส่วนของ method จึงต้องมีข้อมูลที่สามารถเปิดเผยให้ object อื่นทราบได้ดังนี้
- ชื่อของ method ที่ใช้ในการอ้างถึง
- คุณลักษณะ หรือ properties ของ object นั้นๆ
- Parameters ที่ใช้ในการรับส่งค่าระหว่าง method
การสื่อสารระหว่าง object
จากข้อมูลในส่วนที่ object เปิดเผย และอนุญาติให้ใช้ในการติดต่อผ่านกันระหว่าง object ดังนี้กล่าวไปข้างต้น แล้ว ในการสื่อสารระหว่างกันของ object จำเป็นต้องมีส่วนที่เรียกว่า message เป็นส่วนประกอบสำคัญร่วมด้วย เพื่อให้ทราบจุดประสงค์ในการติดต่อระหว่างกัน ที่สมมุติว่า object หนึ่งเป็น sender และอีก object หนึ่งเป็น receiver ดังนั้นเมื่อ secder ส่ง message ไปเพื่อร้องขอการทำงานบางอย่างreceiver ก็จะส่งผลเป็นค่า returmvalue กลับไปยัง sender
กรณี นี้ object Payroll จะต้องทำการร้องขอ SocialSecurityNumber (หมายเลขบัตรประชาชน)ที่เป็นส่วน attribute ของ object Employee โดย object Payroll จะทำการส่ง message ไปยัง method GetSocialSecurityNumber เพื่อร้องขอข้อมูล SocialaecurityNumber เพื่อทำการคำนวณค่าเงินเดือนของพนักงาน
จากหลักการสื่อสารระหว่างกันของ object 2 object สามารถแยกประเภทของการสื่อสารออกได้เป็น 2 กรณี
กรณีที่1 object sender ร้องขอข้อมูลจาก object receiver และจำเป็นต้องรอการคืนค่ากลับ ตัวอย่างเช่น object School ต้องการถามรายชื่อของนักเรียน โดยส่ง message ไปยัง object Student และทางฝ่าย object Student ก็จะทำการส่งคืนค่า (return) รายชื่อกลับไปยัง School object
กรณีที่2 sender ต้องการค่าบางค่าไปเปลี่ยนแปลงข้อมูลที่ฝั่ง receiver ซึ่งในกรณีนี้ senderไม่จำเป็นต้องสนใจการคืนค่ากลับ เช่น object School ต้องการเปลี่ยนชื่อนักเรียน โดยส่งmessage ไปที่ object Student จะทำการเปลี่ยน attribute ที่เป็นชื่อ นักเรียนให้เป็นชื่อใหม่ ในกรณีนี้ object จะไม่สนใจว่าจะมีค่า return กลับมาหรือไม่
มีคำกล่าวบางคำที่บอกว่า การสร้าง objcet ขนาดเล็ก ไว้ใช้งานเฉพาะอย่าง ย่อมจะดีกว่าการสร้าง object ขนาดใหญ่ เพื่อใช้งานในหลาย ๆ อย่าง นั่นก็คือ object ขนาดเล็กจะเป็น object ประเภทเป็นการทำงานเป็นส่วนย่อน ๆ เฉพาะทาง เช่น TV วิทยุ แต่ object ขนาดใหญ่ คือ object ที่รวมการทำงานหลาย ๆ อย่างไว้ในโครงสร้าง เช่น TV/VDO (รวมการทำงานของ TV และ VDO ไว้ในเครื่องเดียวกัน )stereo (รวมกรรทำงานของวิทยุ เล่นเทป เล่น VDO ภายในเครื่องเดียว)ซึ่งจะทำให้ data และ method ภายใน object นั้นมีความซับซ้อน และยุ่งยากในการทำงาน รวมทั้งลำ บากในการแก้ไขปรับปรุงด้วย
Page 1>>> Page 2 >>> Page 3 >>> Home
Coppyright2004ByWebmaster All Right Reserved Comments