Bạn sẽ học:
- Khái niệm OOP là gì
- Cách định nghĩa class (lớp) và object (đối tượng)
- Sử dụng thuộc tính, phương thức
- Từ khóa public, private, protected
- Cách tạo constructor và destructor
1. OOP là gì?
OOP (Object-Oriented Programming) là phong cách lập trình tập trung vào “đối tượng”.
Một đối tượng có:
- Thuộc tính (Attribute): dữ liệu mô tả nó
- Phương thức (Method): hành động mà nó có thể làm
Ví dụ:
Một đối tượng Xe có:
- Thuộc tính: mauSac, tocDo
- Hành động: chay(), dungLai()
2. Cấu trúc của 1 lớp (class)
#include <iostream>using namespace std;
class Xe {
public:
string mauSac;
int tocDo;
void chay() {
cout << "Xe dang chay o toc do " << tocDo << " km/h\n";
}
};
Giải thích:
- class Xe → định nghĩa lớp có tên “Xe”.
- public: → phần công khai, các hàm và biến có thể truy cập từ bên ngoài.
- mauSac, tocDo → thuộc tính.
- chay() → phương thức (hàm bên trong lớp).
3. Tạo đối tượng (Object)
int main() {Xe oto1; // tạo đối tượng tên oto1
oto1.mauSac = "Do";
oto1.tocDo = 120;
oto1.chay();
}
Kết quả:
xe dang chay o toc do 120 km/h
4. private và public
- public: có thể truy cập ở mọi nơi
- private: chỉ dùng được bên trong lớp
private:
int soDu;
public:
BankAccount(int tien) {
soDu = tien;
}
void guiTien(int tien) {
soDu += tien;
}
void hienSoDu() {
cout << "So du hien tai: " << soDu << endl;
}
};
cpp
Copy code
int main() {
BankAccount acc(500);
acc.guiTien(200);
acc.hienSoDu();
}
Kết quả:
So du hien tai: 700
5. Constructor & Destructor
Constructor là hàm tự chạy khi bạn tạo object.
Destructor là hàm tự chạy khi object bị xóa.
class Player {
public:
string name;
// Constructor
Player(string ten) {
name = ten;
cout << name << " da duoc tao!\n";
}
// Destructor
~Player() {
cout << name << " da bi xoa!\n";
}
};
cpp
Copy code
int main() {
Player p1("Doombringer");
}
Kết quả:
Doombringer da duoc tao!
Doombringer da bi xoa!
Tổng kết Tiết 11
Bạn vừa học được:
- Khái niệm OOP, class, object
- public/private
- Constructor, destructor
- Cách đóng gói dữ liệu
Tạo 1 class tên “NhanVat” có:
- Thuộc tính: ten, mau, satThuong
- Phương thức: tanCong() in ra “Tên tấn công với sát thương X”
- Khi tạo nhân vật, hãy in ra “Tên đã được tạo!”
