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 ในหลายๆภาษาจะคล้ายคลึงกัน โดยหลักการดังกล่าวได้ถูกหล่อหลอมรวมกันจนกลายมาเป็น Class และ Object นั่นเอง อธิบายได้แบบสั้นๆง่ายๆดังนี้ (เนื่องจาก Class และ Object คล้ายกัน เนื่องจากเกิดมาจากหลักการ OOP เหมือนกัน ดังนั้นจะขอนำแค่ Class มายกตัวอย่าง)
คือ การจำกัดการเข้าถึง Field, Method และ Property ต่างๆ ของ Class นั้นๆ เพื่อไม่ให้เกิดการเรียกใช้งานจากภายนอกอย่างไม่เหมาะสม การจำกัดการเข้าถึงในที่นี้คือการใส่ Access Specifier เหล่านี้ คือ Private, Protected, Public และ Published สำหรับรายละเอียดสามารถอ่านได้จากหัวข้อถัดไป
คือ การถ่ายทอด สืบต่อ เช่น Class B สืบต่อความสามารถมาจาก Class A จะทำให้ Class B สามารถทำทุกอย่างที่ Class A ทำได้
คือ การเปลี่ยนรูปร่าง เช่น หาก Class B สืบต่อความสามารถมาจาก Class A จะทำให้ Class B ถูกมองว่าเป็น Class B หรือ Class A ก็ได้ในขณะเดียวกัน
คือ การปรับเปลี่ยน เช่น หาก Class B สืบต่อความสามารถมาจาก Class A แล้ว สำหรับ Class B เราสามารถปรับเปลี่ยนความสามารถที่ได้รับมาจาก Class A เพื่อให้ทำงานได้เหมาะสมขึ้น