Java OOP: Class, Object, Inheritance, Polymorphism อธิบายแบบเข้าใจง่าย
#java13 เม.ย. 2569
OOP ใน Java
Java เป็นภาษา Object-Oriented Programming (OOP) เต็มรูปแบบ มีหลักการ 4 ข้อ: Encapsulation, Inheritance, Polymorphism, Abstraction
Class และ Object
public class Person {
// Fields (Encapsulation)
private String name;
private int age;
// Constructor
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getters/Setters
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
// Method
public String introduce() {
return "สวัสดี ฉันชื่อ " + name + " อายุ " + age + " ปี";
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
// สร้าง Object
Person person = new Person("สมชาย", 25);
System.out.println(person.introduce());
Inheritance
public class Employee extends Person {
private String department;
private double salary;
public Employee(String name, int age, String department, double salary) {
super(name, age); // เรียก constructor ของ parent
this.department = department;
this.salary = salary;
}
@Override
public String introduce() {
return super.introduce() + " ทำงานที่ " + department;
}
public double getAnnualSalary() {
return salary * 12;
}
}
Polymorphism
public abstract class Shape {
public abstract double area();
public abstract double perimeter();
public void printInfo() {
System.out.printf("พื้นที่: %.2f, เส้นรอบวง: %.2f%n", area(), perimeter());
}
}
public class Circle extends Shape {
private double radius;
public Circle(double radius) { this.radius = radius; }
@Override
public double area() { return Math.PI * radius * radius; }
@Override
public double perimeter() { return 2 * Math.PI * radius; }
}
public class Rectangle extends Shape {
private double width, height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double area() { return width * height; }
@Override
public double perimeter() { return 2 * (width + height); }
}
// Polymorphism ในการใช้งาน
List<Shape> shapes = List.of(
new Circle(5),
new Rectangle(4, 6)
);
for (Shape shape : shapes) {
shape.printInfo(); // เรียก method ที่ถูก override
}
Interface
public interface Printable {
void print();
default void printWithBorder() {
System.out.println("---");
print();
System.out.println("---");
}
}
public class Document implements Printable {
private String content;
public Document(String content) { this.content = content; }
@Override
public void print() { System.out.println(content); }
}
สรุป
OOP ใน Java ช่วยให้โค้ดมีโครงสร้างที่ดี reusable และ maintainable การเข้าใจ Class, Inheritance, Polymorphism และ Interface เป็นพื้นฐานสำคัญของ Java developer ครับ