วันศุกร์ที่ 15 กรกฎาคม พ.ศ. 2554

News/บทความ(VB) - ทำความรู้จักกับ Object Oriented Programming (OOP)

News/บทความ(VB)

OOP คืออะไร มีความสำคัญอย่างไร... มีประโยชน์ตรงใหนถึงต้องทำให้ VB ต้องเปลี่ยนเป็น OOP... และเราจะเขียนโปรแกรมแบบ OOP ได้อย่างไร....

OOP อาจ เป็นสิ่งใหม่ที่เข้าใจได้ยากสำหรับผู้ที่ไม่เคยมีประสบการณ์ด้านการเขียน โปรแกรมแบบออบเจ็ค ทั้งนี้สิ่งที่สำคัญที่ทำให้เราเข้าใจหลักการเขียนโปรแกรมแบบออบเจ็ค เราจำเป็นต้องรู้ก่อนว่า ออบเจ็คคืออะไร?.....ปกติแล้วในชีวิตประจำวันเราทุกคนได้สัมผัส เคยรู้จักและเคยใช้งานออบเจ็คมาแล้ว เพียงแต่.. เราไม่เคยให้คำจำกัดความของคำว่า ออบเจ็ค (Object) ตัวอย่างเช่น คอมพิวเตอร์ รถยนต์ บ้าน โทรทัศน์ จักรยานยนต์ หรือทุกสิ่งทุกอย่างสัตว์สิ่งของต่างๆ ถือเป็นออบเจ็ค (Object) ทั้งหมด
เราจะเห็นได้ว่าทุกสิ่งทุกอย่างจะมีคุณสมบัติ (Property) เฉพะตัวของมัน เช่น ทีวี จะมีขนาดหน้าจอ ชนิดของจอ ยี่ห้อ รุ่น ระบบเสียง ส่วนรถนต์ก็จะมี ยี่ห้อ รุ่น แรงม้า จำนวนประตู ชนิดเกีนร์ เป็นต้น นอกจากนั้นสิ่งเหล่านี้ยังสามารถที่จะทำงานบางอย่างได้ (เมธอด method) ตามที่ผู้ผลิตออกแบบขึ้นมา เช่นเราสามารถเปลี่ยนเกียร์รถยนต์ เลี้ยวซ้าย เลี้ยวขวา หรือหยุดรถได้โดยที่เราไม่จำเป็นต้องรู้ว่ามันทำงานอย่างไร จะมีใครบ้างสนใจว่าเบรกรถยนต์ทำงานอย่างไร ใช้เฟืองตัวใหนทำงานประสารกันบ้าง ขอให้มันทำงานตามที่เราต้องการก็พอ งานที่ ต่างๆที่เกิดขึ้น มันคงไม่ได้เกิดขึ้นมาเอง นอกจากจะต้องมีเหตุการณ์ (Event) อย่างใดอย่างหนึ่งไปกระตุ้นให้มันทำงาน อยู่ดีๆ ทีวีจะเปลี่ยนช่องเองไม่ได้นอกจากราจะกดรีโมท หรือกดปุ่มบนเครื่อง หรืออยู่ดีๆรถยนต์คงไม่เบรกเองโดยคนขับไม่ได้เหยียบเบรก
ถ้ามองถึงบริษัทผู้ผลิตสิ่งเหล่านี้ออกมา บริษัทจะไม่สามารถผลิตทีวีหรือรถยนต์ รุ่นใดรุ่นหนึ่งออกมาโดยไม่มีการออกแบบที่ชัดเจน ในรูปของต้นแบบหือพิมพเขียว (คลาส Class) ให้เรียบร้อยเสียก่อนแล้วจึงผลิตสินค่ตามต้นแบบที่ออกแบบไว้ และสินค้ารุ่นเดียวกันจะต้องมุณสมบัติต่างๆ ที่เหมือนกั มีความสามารถในการทำงานเหมือนกัน
ถ้าสินค้าแต่ละรุ่นที่ออกมา บริษัทผู้ผลิตต้องออกแบบทุกองค์ประกบใหม่ทั้งหมดก็คงเป็นการยุ่งยากและเสีย เวลาในการผลิตเป็นอย่างมาก ดังนั้นโดยปกติผู้ผลิตจะออกแบบต้นแบบหลักเอาไว้ และนำเอาต้นแบบดังกล่าวมาทำเป็นต้นแบบของผลิตภันฑ์ตัวใหม่ (Inheritance หมายถึงการสืบทอดคุณสมบัติจากต้นแบบเดิม) โดยทำการพัฒนาต่อยอกจากโครงสร้างต้นแบบเดิม เพื่อให้ได้ผลิตภัณฑ์รุ่นใหม่ และสร้างเป็นต้นแบบอีกที เช่นการผลิตทีวีจอแบบ ผู้ผลิตก็ยึดต้นแบบของทีวีจอธรรมดาและพัฒนารูปร้าง หน้าตา เพิ่มเติมคุณสมบัติใหม่ๆเข้าไป หรือแม้นแต่การผลิตรถยนต์รุ่นใหม่ๆ ผลิตคงไม่ได้เริ่มออบแบบใหม่ทั้งหมด แต่คงใช้วิธีดัดแปลงรูปร่างหน้าตา เพิ่มสมรรถนะและความสะดวกสบายเข้าไป ซึ่งเป็นการนำเอาสิ่งที่มีอยู่มาพัฒนาเพิ่มเติมโดยไม่ต้องเริ่มออกแบบใหม่ ทั้งหมด
จากข้อความดังที่กล่าวมาได้แสดงถึงขอบเขตของออบเจ๊ค จะเห็นว่ามีคำศัพท์ใหม่ๆ เกิดขึ้นมามากมายเช่น คลาส ( Class) ออบเจ็ค (Object) พร้อพเพอร์ตี้ (Property) เมธอด (Method) อีเวนต์ (Event) เป็นต้น อย่างไรก็ตามท่านผู้อ่านไม่ต้องกังวลกับคำศัพท์ต่างๆ เหล่านี้ ผู้เขียนเพียงต้องการให้เรามองเห็นภาพรวมทั้งหมดเกี่ยวกับแนวคิดของ Object Oriented จึงยกตัวอย่างขึ้นมาประกอบความเข้าใจ
จะเห็นได้ว่าคำจำกัดความ ที่ง่ายที่สุดของ ออบเจ็ค (Object) ก็คือ อะไรก็ได้ ไม่ว่าจะเป็นคน สัตว์ สิ่งของ สถานที่ ฯลฯ โดยที่ ออบเจ็คจะมีส่วนประกอบที่สำคัญ 2 ประการคือ พร๊อพเพอร์ตี้ (Property) หรือคุณสมบัติเฉพาะตัว และ เมธอด (Method) หรือความสามารถในการทำงาน ดังตัวอยางเช่น ระบบปฏิบัติการ Windows ไมโครซอฟท์ได้นำเอาแนวคิดของ ออบเจ็ค มาประยุกต์ใช้ ทุกสิ่งทุกอย่างใน Windows จะถูกมองเป็น ออบเจ็คทั้งหมด ตั้งแต่ Desktop Icon และ Taskbar นั้นหมายถึงว่าทุกองค์ประกอบของ Windows จะถูกมองเป็บ ออบเจ็คซึ่งจะมีพร๊อพเพอร์ตี้ (Property) เฉพาะตัว และมี เมธอด (Method) เพื่อทำงานใดๆ



เช่นจากรูปหน้าจอ Desktop ของ Windows ถ้าเราคลิกขวาบน Icon ใดๆ จากนั้นคลิกเมนู Property ไดอะล็อกแสดงพร็อพเพอร์ตี้ของ Icon นั้นๆ จะปรากฏขึ้นให้เราเห็นพร็อพเพอร์ตี้เหล่านั้น เช่น ชื่อ Icon ชนิดของไฟล์ ที่อยู่ของไฟล์ ขนาดไฟล์ วันที่/เวลาที่สร้างไฟล์ วันที่/เวลาที่แก้ไขครั้งล่าสุด วันที่เข้าถึงครั้งล่าสุด และรูป Icon เป็นต้น
นอกจากนั้นออบเจ็คที่เลือกจะมี เมธอด มาให้เพื่อทำงานใดๆ เช่นเมธอด Change Icon เพื่อ ใช้เปลี่ยนรูปไอคอน, Find Target เพื่อเรียกเปิดโฟล์เดอร์ เป็นต้น จะเป็นได้ว่าเมธอดต่างๆเหล่านี้จะไม่สามารถทำงานเองได้จนกว่าจะเกิด เหตุการณ์ (Even) ใดๆขึ้นเช่นเมื่อมีการคลิกเมาส์เป็นต้น

นางสาวศิริมา กุลอุดมทรัพย์ 51040881 note : )

4 ความคิดเห็น:

  1. Object Oriented Programming (oop) เป็นการเขียน โปรแกรมแบบออบเจ็คที่แปลกใหม่สำหรับผ ซึ่งผมคิดว่าเราต้องเข้าใจความหมายของออบเจ็ค ในความเข้าใจของผมออบเจ็คมีส่วนประกอบที่สำคัญ 2 ประการคือ พร๊อพเพอร์ตี้ (Property) หรือคุณสมบัติเฉพาะตัว และ เมธอด (Method) หรือความสามารถในการทำงานตามที่กล่าวมาข้างต้น โดยที่เราสามารถนำเอาแนวคิดของ ออบเจ็ค มาประยุกต์ใช้ในการทำงานได้อีกมากมาย

    นฤพนธ์(nix)

    ตอบลบ
  2. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  3. ถ้าหาโค้ดดีๆ นำมาปรับใช้ในระบบของเรา

    จะสามารถช่วยให้ระบบ ของเราน่าสนใจขึ้นอีกมาก เลย

    อิช์กันต์ มานะวงศ์เจริญ (กิด)

    ตอบลบ
  4. ข้อความรู้เกี่ยวกับ OOP
    เนื่องจากหลักการเขียนโปรแกรมเชิงวัตถุเป็นแนวคิดแบบใหม่ ดังนั้น การทำงานหลาย ๆ ส่วนของการเขียนโปรแกรมแบบนี้อาจจะยังไม่เป็นที่คุ้นเคยมากนัก จึงจำเป็นที่ผู้ศึกษาต้องทำความเข้าใจการทำงานของแนวคิดนี้ได้ดียิ่งขึ้น ข้อควรรู้เบื้องต้นเกี่ยวกับ OOP มีดังนี้

    การเชื่อมต่อ (Interface)
    อินเตอร์เฟส (Interface) หมายถึง การเชื่อมต่อ ถ้าเป็นการเชื่อมต่อระหว่างผู้ใช้กับคอมพิวเตอร์ จะเรียกการเชื่อมต่อนั้นว่า ยูสเซอร์อินเตอร์เฟส (User Interface) แต่ในการเขียนโปรแกรมเชิงวัตถุ การเชื่อมต่อยังรวมไปถึงวัตถุ (Object) เพราะในวัตถุจะต้องมีอินเตอร์เฟส อันเป็นส่วนที่วัตถุนั้น ๆ จะให้บริการหรือเป็นส่วนที่บอกว่าวัตถุนั้น ๆ สามารถทำอะไรได้บ้าง ซึ่งบางครั้งเรียกว่า เมธทอด (Method)
    ข้อดีของการมีอินเตอร์เฟส ก็คือ การเปลี่ยนแปลงที่เกิดขึ้นภายในวัตถุจะไม่กระทบต่ออินเตอร์เฟส ดังนั้น ภายในวัตถุผู้เขียนคำสั่งสามารถดัดแปลง แก้ไข หรือเพิ่มเติมได้ตลอดเวลา นอกจากนี้ ภายในวัตถุยังสามารถเก็บค่าต่าง ๆได้อีกด้วย

    การซ่อนรายละเอียด (Encapsulation)
    ส่วนประกอบของวัตถุตามแนวความคิดการเขียนโปรแกรมเชิงวัตถุ จะต้องประกอบไปด้วยสองส่วนเป็นอย่างน้อย คือ ส่วนของคุณสมบัติใช้เก็บข้อมูลรายละเอียด สถานะ โอยใช้ตัวแปรเก็บค่าต่าง ๆ ไว้ และส่วนของเมธทอดทีเป็นตัวเชื่อมการทำงานของวัตถุนั้น ๆ โดยผู้ใช้จะไม่สามารถติดต่อใช้งานกับตัวแปรที่อยู่ข้างในได้ ในภาษา C++ จะใช้คำ Public,Private และ Protected เข้ามาช่วยกำหนดขอบเขตการใช้

    การนำวัตถุมาใช้ใหม่ (Reuse the Object)
    จุดประสงค์ใหญ่ของการเขียนโปรแกรมเชิงวัตถุ ก็คือ การนำส่วนต่าง ๆ ของวัตถุที่สร้างขึ้นกลับมาใช้ใหม่หรือที่เรียกในภาษาอังกฤษว่า “Reuse” เมื่อผู้เขียนโปรแกรมสร้างวัตถุมีจำนวนมากพอก็สามารถนำวัตถุที่สร้างขึ้นมาประกอบเป็นวัตถุใหม่ หรือที่เรียกว่าคอมโพสิตชั่น “Composition”
    นอกจากวิธีการคอมโพสิตแล้ว ผู้ใช้ยังสามารถ Reuse ส่วนของวัตถุโดยการใช้การสืบทอดคุณสมบัติ (Inheritance) จากคลาส ลักษณะเช่นนี้ คือ เป็นการนำส่วนของวัตถุทั้งหมดมาใช้ ซึ่งปกติแล้ววัตถุที่นำมาใช้ในลักษณะนี้จะมีขนาดใหญ่ ถ้าเป็นการคอมโพสิตจะประกอบขึ้นจากส่วนของวัตถุที่มีขนาดเล็กกว่า อย่างไรก็ตาม ขนาดของวัตถุมิได้เป็นตัวกำหนดที่แน่นอนตายตัวเสมอไป

    ตอบลบ

หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น