Skip to content

Tự học C++ - Module 7: Lập trình hướng đối tượng (OOP) cơ bản

TuanNDA
Published date:
Edit this post

Table of contents

Open Table of contents

1. OOP là gì?

Lập trình hướng đối tượng giúp chúng ta mô phỏng các thực thể trong thế giới thực vào trong code.

Ưu điểm của OOP:


2. Lớp (Classes) và Đối tượng (Objects)

Hãy tưởng tượng:

Tạo một Lớp (Class):

Sử dụng từ khóa class. Các biến bên trong lớp gọi là Attributes (Thuộc tính), còn các hàm gọi là Methods (Phương thức).

class MyClass {       // Lớp
  public:             // Đặc quyền truy cập
    int myNum;        // Thuộc tính
    string myString;  // Thuộc tính
};

Tạo Đối tượng (Object):

int main() {
  MyClass myObj;     // Tạo đối tượng từ class

  myObj.myNum = 15;  // Truy cập thuộc tính bằng dấu chấm
  myObj.myString = "Hello OOP";

  cout << myObj.myString;
  return 0;
}

3. Phương thức của Lớp (Class Methods)

Phương thức là các hàm thuộc về một lớp. Có hai cách để định nghĩa phương thức:

Định nghĩa bên trong lớp:

class MyClass {
  public:
    void myMethod() {
      cout << "Chào mừng bạn đến với OOP!";
    }
};

Định nghĩa bên ngoài lớp:

Sử dụng toán tử phạm vi ::. Cách này giúp mã nguồn gọn gàng hơn khi lớp có quá nhiều phương thức.

class MyClass {
  public:
    void myMethod(); // Chỉ khai báo
};

void MyClass::myMethod() { // Định nghĩa bên ngoài
  cout << "Mã nguồn trông chuyên nghiệp hơn!";
}

4. Hàm khởi tạo (Constructors)

Constructor là một phương thức đặc biệt được tự động gọi khi một đối tượng được tạo ra. Nó có cùng tên với tên lớp và không có kiểu trả về.

class Car {
  public:
    string brand;
    int year;

    // Constructor có tham số
    Car(string x, int y) {
      brand = x;
      year = y;
    }
};

int main() {
  // Đối tượng được tạo và gán giá trị ngay lập tức qua constructor
  Car carObj1("BMW", 1999);
  Car carObj2("Ford", 1969);
}

5. Đặc quyền truy cập (Access Specifiers)

C++ cung cấp 3 loại specifiers để kiểm soát việc truy cập vào các thành viên của lớp:


Lời kết Module 7

Bạn đã nắm được những viên gạch đầu tiên của OOP. Việc hiểu về Class, Object và Constructor là nền tảng để bạn tiếp cận các khái niệm nâng cao hơn.

Trong Module 8, chúng ta sẽ khám phá nốt các trụ cột còn lại của OOP: Encapsulation (Đóng gói), Inheritance (Kế thừa) và Polymorphism (Đa hình).

Hẹn gặp lại các bạn!

Previous
Tự học C++ - Module 8: Các trụ cột của OOP
Next
Tự học C++ - Module 6: Hàm (Functions) chuyên sâu