หลักการของโปรแกรมเชิงออปเจ็ค

โปรแกรมเชิงกระบวนการ (procedural) จะแบ่งการทำงานของโปรแกรมออกเป็นส่วนๆตามฟังก์ชันของการทำงานการปรับปรุงหรือแก้ไขโปรแกรมเชิงกระบวนการทำได้ยาก โปรแกรมเชิงออปเจ็คจะแบ่งการทำงานของโปรแกรมเป็นออปเจ็ค  การปรับปรุงหรือแก้ไขโปรแกรมเชิงออปเจ็คทำได้ง่ายกว่า จึงเหมาะกับการพัฒนาโปรแกรมขนาดใหญ่ที่จะต้องมีการปรับปรุงแก้ไขโปรแกรมอยู่ตลอด
ออปเจ็ค
ออปเจ็ค (object) แบ่งได้เป็นสองประเภทคือ
         1.สิ่งที่เป็นรูปธรรม (tangible) คือสิ่งที่เป็นวัตถุและจับต้องได้อาทิเช่น นักศึกษา  ใบลงทะเบียน  ปากกา  และรถ เป็นต้น
         2.สิ่งที่เป็นนามธรรม (intangible) คือสิ่งที่ไม่สามารถจับต้องได้อาทิเช่น คะแนนรายชื่อวิชา  บัญชีเงินฝาก  และตารางเที่ยวบิน เป็นต้น
ออปเจ็คประกอบไปด้วย
          -คุณลักษณะ (attribute) หรือข้อมูล (data)
          -เมธอด (method) หรือพฤติกรรม (behavior)
ตัวอย่างของออปเจ็ค
นักศึกษา     อาจจะประกอบไปด้วยคุณลักษณะเช่น รหัส ชื่อ และเกรดเฉลี่ย และอาจจะมีเมธอดเช่น ลงทะเบียน  สอบ  และเดิน
รถยนต์        อาจจะประกอบไปด้วยคุณลักษณะเช่น ยี่ห้อ รุ่น และสี และอาจจะมีเมธอดเช่น เคลื่อนที่ หยุดและเลี้ยว
สุนัข             อาจจะประกอบไปด้วยคุณลักษณะเช่น ชื่อ พันธุ์ และสี  และอาจจะมีเมธอดเช่น เห่า คลาน และกระดิกหาง
คลาส
เปรียบเสมือนพิมพ์เขียว (template) ของออปเจ็ค ออปเจ็คที่ถูกสร้างมาจากคลาส (class) บางครั้งเรียกว่าเป็น instance ของคลาส คลาสหนึ่งคลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค อาทิเช่น คลาส Student อาจสร้างออปเจ็ค s1,s2 หรือ s3 ซึ่งเป็นออปเจ็คของคลาส Student
Access Modifier
Class Modifier 
     -public   ทุก ๆ class สามารถ Access ได้
     -abstract จะมีการ modify โมดูลนี้ทีหลัง จะเป็นคลาสที่ไม่สามารถนำไปสร้าง Object ได้
     -final     จะขยาย(extend) ต่อไม่ได้    เป็น class สุดท้าย ไม่ต้องการให้มีสิ่งอื่นๆ เพิ่ม เช่น  String ไม่ยอมให้ขยายได้อีก เพราะการ modify สมบูรณ์แล้ว และไม่สามารถมี  SubClass ได้อีก
     -ถ้าไม่ประกาศ Class modifier  จะเป็นค่า default ซึ่งจะ Access ได้เฉพาะ class ที่อยู่ใน Package เดียวกันเท่านั้น
Attribute and Method  Modifier
      -Public คือ Attributes และ Method ที่สามารถเห็นได้และเรียกใช้ได้โดยตรงจากภายนอก ใช้เครื่องหมาย ( + ) กำกับไว้หน้า Public Attributes และ Public Method
      -Protected คือ Attributes และ Method ที่ไม่สามารถเห็นได้จากภายนอก แต่เป็นส่วนที่สามารถส่งต่อให้ Inherited Class ได้เท่านั้น
      ตัวอย่าง Protected Attributes ในชีวิตจริงก็คือ ลักษณะต่าง ๆ ที่ลูกสืบทอดทางพันธุกรรมมาจากพ่อแม่ เป็นต้น  ใช้เครื่องหมาย ( # ) กำกับไว้หน้า Protected Attributes และ Protected Method
      -Private  คือ Attributes และ Method ที่ไม่สามารถเห็นได้เลยจากภายนอก เข้าถึงได้ผ่าน Function ที่ Class มีไว้เพื่อการเข้าถึง Attributes เหล่านี้เท่านั้น  Private Method  มีไว้เพื่อใช้งานภายในตัว Object ของ Class เท่านั้น ไม่สามารถถูกเรียกใช้โดยตรงจากภายนอกได้  ใช้เครื่องหมาย ( - ) กำกับไว้หน้า Private Attributes และ Private Method  ถ้าไม่ประกาศ modifier จะถูกกำหนดให้เป็น Default  ซึ่งจะถูกเรียกใช้ได้เฉพาะที่อยู่ใน Package เดียวกัน