Trang chủ
PHASE 2: LOGIC & TỰ ĐỘNG HÓA (DAY 31 - 50)/Ngày 44/100
DAY 44🇯🇵 オブジェクト指向 (Encapsulation)
OOP 1: Class, Object & Đóng gói
44%
Quảng cáo • Advertisement
📢 Sponsor Ad
Google AdSense
lesson.content.title
lesson.content.subtitle
🎯 OOP: Triết lý "Chúa giấu mặt"
Lập trình hướng đối tượng (OOP) không chỉ là code, nó là triết học. Nó giúp ta mô phỏng thế giới thực vào máy tính.
1. Class vs Object: Khuôn bánh và chiếc bánh
- Class (Lớp): Là cái bản vẽ thiết kế, cái khuôn đúc. Nó trừu tượng, không sờ mó được. (Ví dụ: Bản vẽ thiết kế xe VinFast VF8).
- Object (Đối tượng): Là chiếc xe cụ thể lăn bánh ngoài đường. (Xe VF8 biển số 30A-999.99).
- Instantiate (Khởi tạo): Là hành động đúc bánh.
Car myCar = new Car();
2. Encapsulation (Tính Đóng Gói) - "Giấu hàng"
Tại sao cái ổ điện nhà bạn lại có vỏ nhựa? Tại sao cái tivi lại có vỏ bọc kín mít?
-> Để người dùng (User) không thò tay vào linh kiện bên trong mà bị điện giật chết!
Trong code cũng vậy. Một Class tốt là Class biết giấu đi những thứ nguy hiểm (Private) và chỉ chìa ra những thứ an toàn (Public) cho người ta dùng.
| Access Modifier | Ý nghĩa dân dã | Phạm vi |
|---|---|---|
| private | "Đồ lót". | Chỉ mình tôi thấy. Vợ cũng không được thấy. (Riêng tư tuyệt đối trong Class). |
| default (package) | "Đồ ngủ". | Người trong nhà (Cùng package) thấy được. Khách không thấy. |
| protected | "Gia phả". | Con cháu (Subclass) được thừa hưởng. Người ngoài không có cửa. |
| public | "Đồ đi tiệc". | Show ra cho cả thiên hạ thấy. |
Tại sao phải dùng Getter/Setter?
class TaiKhoan {
public int soDu; // ❌ NGU!
}
// Hacker:
tk.soDu = -9999999; // Chết chưa?
Sửa lại cho chuẩn:
class TaiKhoan {
private int soDu; // ✅ Giấu đi
public void rutTien(int amount) {
if (amount > soDu) {
print("Mơ đi cưng!"); // Kiểm soát logic
} else {
soDu -= amount;
}
}
}
Quảng cáo • Advertisement
📢 Ad Space
Google AdSense