User Tools

Site Tools


Sidebar


Introduction


Basic Tutorials


Advance Tutorials


Useful Techniques


Examples

  • Simple Pipe Weight Calculator
  • Unit Convertor

Sidebar

tutorial:oop

Object Oriented Programming (OOP)

OOP คืออะไร

Object Oriented Programming (OOP) คือการเขียนโปรแกรมเชิงวัตถุ เป็นการมองสิ่งต่างๆเป็นวัตถุที่ประกอบไปด้วยคุณสมบัติ(Property) และกระบวนการ (Method) หากเราลองมองย้อนกลับไปยุคแรกๆของภาษาคอมพิวเตอร์ เช่น C, Pascal, VB,.. ในยุคนั้น ยังเป็นภาษาระดับสูงแบบธรรมดาที่รันบนหน้าจอ console เท่านั้น หลักการ OOP เพิ่งเกิดขึ้นมาทีหลัง

ผลของการนำ OOP มาประยุกต์ใช้คือการเกิดโปรแกรมในลักษณะที่จับต้องได้ ยกตัวอย่างเช่น Form-Based Application หรือเรียกอีกอย่างว่า Graphic User Interface (GUI) เป็นต้น ภาษาคอมพิวเตอร์ในยุคหลังๆจึงได้ถูกพัฒนาให้รองรับ OOP ได้เป็นพื้นฐาน ยกตัวอย่าง คือ C++, C#, VB. Net, Object Pascal, เป็นต้น

หลักการ OOP จึงสำคัญมากสำหรับการเขียนโปรแกรมสมัยใหม่ เพราะทำให้ code ลดลงและเป็นระเบียบมากขึ้น ง่ายแก่การจัดการ

OOP มีอะไรบ้าง

โดยทั่วไป หลักการ OOP ในหลายๆภาษาจะคล้ายคลึงกัน โดยหลักการดังกล่าวได้ถูกหล่อหลอมรวมกันจนกลายมาเป็น Class และ Object นั่นเอง อธิบายได้แบบสั้นๆง่ายๆดังนี้ (เนื่องจาก Class และ Object คล้ายกัน เนื่องจากเกิดมาจากหลักการ OOP เหมือนกัน ดังนั้นจะขอนำแค่ Class มายกตัวอย่าง)

1. Encapsulation

คือ การจำกัดการเข้าถึง Field, Method และ Property ต่างๆ ของ Class นั้นๆ เพื่อไม่ให้เกิดการเรียกใช้งานจากภายนอกอย่างไม่เหมาะสม การจำกัดการเข้าถึงในที่นี้คือการใส่ Access Specifier เหล่านี้ คือ Private, Protected, Public และ Published สำหรับรายละเอียดสามารถอ่านได้จากหัวข้อถัดไป

2. Inheritance

คือ การถ่ายทอด สืบต่อ เช่น Class B สืบต่อความสามารถมาจาก Class A จะทำให้ Class B สามารถทำทุกอย่างที่ Class A ทำได้

3. Polymorphism

คือ การเปลี่ยนรูปร่าง เช่น หาก Class B สืบต่อความสามารถมาจาก Class A จะทำให้ Class B ถูกมองว่าเป็น Class B หรือ Class A ก็ได้ในขณะเดียวกัน

4. Overriding

คือ การปรับเปลี่ยน เช่น หาก Class B สืบต่อความสามารถมาจาก Class A แล้ว สำหรับ Class B เราสามารถปรับเปลี่ยนความสามารถที่ได้รับมาจาก Class A เพื่อให้ทำงานได้เหมาะสมขึ้น

tutorial/oop.txt · Last modified: 2019/01/17 07:33 by admin