วันพฤหัสบดีที่ 31 กรกฎาคม พ.ศ. 2551

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

OOP (Object Oriented Programming)
เป็นวิธีการเขียนโปรแกรมซึ่งจัดดำ เนินการกับกลุ่มของ ออบเจ็กต์ (Object) ที่มีอยู่ในโปรแกรม ออบเจ็กต์ เป็นชนิดของข้อมูลซึ่งประกอบไปด้วยกลุ่มของ ข้อมูล(data) และกลุ่มของฟังก์ชัน(Function) โดยการใช้ข้อมูลและฟังก์ชันเหล่านี้ แต่ละออบเจ็กต์จะทำ งาน 1 งานได้สมบูรณ์(ทั้งนี้เนื่องจากตัวออบเจ็กต์เองประกอบไปด้วยข้อมูลและฟังก์ชัน) ออบเจ็กต์ เป็นสมาชิกของ ตัวแปรคลาส (class variable) มีลักษณะเป็นโมดูล (modularity) ซึ่งประกอบไปด้วย ตัวแปร ชนิดต่าง ๆ ที่สัมพันธ์กัน และประกอบด้วย ฟังก์ชัน ต่าง ๆ โดยที่ คลาส(class) จะห่อหุ้มข้อมูลและฟังก์ชันรวมไว้ด้วยกันมีลักษณะที่เรียกว่า encapsulation ดังนั้นจึงมีความสะดวกในการใช้งาน สามารถป้องกันส่วนอื่น ๆ ของโปรแกรมไม่ให้เข้าถึงตัวแปรชนิดโลคอลภายในคลาสได้อย่างดีเยี่ยม ดังนั้น การเขียนโปรแกรมแบบ OOP คือ การสร้างและ/หรือการเรียกใช้ออบเจ็กต์ให้ทำงานตามที่เราต้องการ ในการเรียกใช้ออบเจ็กต์นั้น เราจะสนใจเฉพาะการทำ งานของออบเจ็กต็เท่านั้น ไม่จำ เป็นต้องสนใจรายละเอียดภายในของออบเจ็กต์ว่าเป็นอย่างไรการใช้ออบเจ็กต์ของโปรแกรมจะมีลักษณะคล้ายกับการใช้สิ่งของในชีวิตประจำ วันของเรา เช่น การใช้โทรทัศน์ เราสามารถใช้ได้โดยไม่จำ เป็นต้องรู้ว่าภายในเครื่องโทรทัศน์มี "ส่วนประกอบ" อะไรบ้าง และไม่จำ เป็นต้องรู้ว่าแต่ละส่วนประกอบทำ งานอย่างไร เราจะรู้เพียงแค่วิธีใช้ เช่น วิธีเปิด วิธีเปลี่ยนช่อง วิธีปรับเสียง วิธีปรับสี วิธีตั้งเวลา วิธีปิดเครื่อง เป็นต้น ลักษณะของโปรแกรมแบบ OOPก็มีลักษณะคล้ายกับการใช้โทรทัศน์ในชีวิตประจำ วัน ซึ่งจะได้ศึกษาถึงวิธีการสร้างและวิธีการใช้ OOP ต่อไป
คุณสมบัติของ OOP
1.Inheritance เป็นคุณสมบัตที่ว่า Class ต้องสามารถสืบทอด ได้เช่นเดียวกับภาษาโปรแกรม ที่กำหนด เป็น Component ทั้งที่ มองเห็นและมองไม่เห็น ก็ต้องสืบทอดได้ โดย ดีไรฟว์คลาส ก็คือ Class ที่ถูกสืบทอดมา นั้น สามารถเพิ่มเติม Poperty หรือ Method เดิมได้ตามความเหมาะสม
2.Polymorphismเป็นคุณสมบัติที่ว่า สามารถเปลี่ยนแปลงความสามารถ ของ Class ให้เข้ากับสภาพแวดล้อมได้ ตัวอย่างง่ายๆ เช่น เราสร้าง Class ที่ชื่อว่า Shape ซึ่งจะใช้สร้าง Object เป็นรูปทรงต่างๆ เช่น วงกลม, สามเหลี่ยม และ สี่เหลี่ยม เป็นต้น แล้วเราก็มี Method Area เพื่อหาพื้นที่ของรูปทรงต่างๆ แน่นอนว่า Method Area ของการเรียกใช้งานแต่ละครั้ง ต้องคำนึงด้วยว่า เราระบุ Poperty ของรูปทรงว่าเป็นรูปทรงอะไร ซึ่งจะทำให้เรามีวิธีการคำนวนหา ที่แตกต่างกันนั่นเอง
3. Overloading คือ เมทธอดที่มีชื่อซ้ำกันในคลาส; ตัวแปรก็สามารถตั้งซ้ำกันได้ในโปรแกรม แต่ต้องอยู่กันคนละขอบเขต เป็นความสามารถของตัวแปรภาษา ที่จะตัวสอบ Signature ของ Function แล้วแปลออกมาได้อย่างถูกต้อง
4. Overriding คือ การแทนที่รายละเอียดการทำงานของคลาสแม่ ด้วยรายละเอียดการทำงานของคลาสลูก
5. Abstract class คือ class ที่ไม่ระบุรายละเอียดการทำงาน
6. Abstract method คือ method ที่มีคำว่า ‘abstract’ อยู่หน้าชื่อ และมีเพียงชื่อของ method โดยไม่มีตัวโปรแกรม และหากคลาสใด มี method ใด method หนึ่งเป็น Abstract คลาสนั้นจะต้องเป็น Abstract ด้วย (เรียกว่า Abstract class) และต้องมี คำว่า ‘abstract’ อยู่หน้าชื่อคลาส ในตอนกำหนดคลาสด้วย มิฉะนั้นจะไม่ผ่านการคอมไพล์

ไม่มีความคิดเห็น: