OOP (Object-Oriented Programming)
แนวคิดการเขียนโปรแกรมที่จัดการทุกอย่างเป็น “วัตถุ” (Object) ใช้ใน Java และภาษาอื่น ๆ อีกมาก
4 เสาหลัก
1. Abstraction
ซ่อนความซับซ้อน เปิดเผยแค่สิ่งที่ต้องใช้ เหมือนสวิตไฟ — รู้แค่เปิด-ปิด ไม่ต้องรู้วงจรข้างใน
EmailService email = new EmailService();
email.send("[email protected]", "สวัสดี"); // ไม่ต้องรู้ว่าข้างในส่งยังไง2. Encapsulation
กำหนดสิทธิ์เข้าถึงข้อมูลภายใน class ด้วย access modifier (private, public) ป้องกันไม่ให้ข้างนอกมายุ่งตรง ๆ
public class BankAccount {
private double balance = 0; // ข้างนอกเข้าถึงไม่ได้
public void deposit(double amount) { this.balance += amount; }
public double getBalance() { return this.balance; } // อ่านได้ แก้ตรงๆ ไม่ได้
}3. Inheritance (Override)
Class ลูกสืบทอดคุณสมบัติจาก class แม่ และปรับเปลี่ยนพฤติกรรมได้
public class Animal { public void speak() { ... } }
public class Dog extends Animal {
@Override
public void speak() { System.out.println("โฮ่ง!"); }
}4. Polymorphism (Overload)
ชื่อเดียวกัน แต่ทำงานต่างกันขึ้นอยู่กับ object เหมือนคำว่า “บิน” — เครื่องบินบินด้วยเครื่องยนต์ นกบินด้วยปีก
Flyable f1 = new Airplane(); // ใช้เครื่องยนต์
Flyable f2 = new Bird(); // ใช้ปีก
f1.fly(); // ชื่อเดียวกัน ทำงานต่างกันจุดสำคัญ
- เป็นพื้นฐานที่ต้องเข้าใจก่อนเรียน Dependency Injection (interface, class)
- Java เป็น OOP เต็มรูปแบบ — ทุกอย่างอยู่ใน class
Related
- Java — ภาษา OOP เต็มรูปแบบ
- Dependency Injection — ต้องเข้าใจ OOP ก่อน (interface)
- IoC Container — ใช้ OOP (interface → implementation)
- Framework — framework บังคับใช้ OOP patterns