Lập trình hướng đối tượng (OOP) là một mô hình lập trình dựa trên khái niệm "đối tượng", có thể chứa dữ liệu (thuộc tính) và các chỉ thị để làm việc (phương thức).
Ví dụ, một người là một đối tượng có các thuộc tính như chiều cao, giới tính, tuổi, v.v. Cũng có các phương thức như di chuyển, nói chuyện, v.v.
Đối tượng (Object)
Đây là đơn vị cơ bản của OOP. Cả dữ liệu và hàm thao tác trên dữ liệu được gói gọn thành một đơn vị gọi là đối tượng.
Lớp (Class)
Khi bạn định nghĩa một lớp, bạn định nghĩa một bản thiết kế cho đối tượng. Điều này không định nghĩa dữ liệu thực tế, nhưng định nghĩa ý nghĩa của tên lớp, tức là một đối tượng của lớp sẽ bao gồm gì và các phép toán nào có thể thực hiện trên đối tượng đó.
OOP có bốn khái niệm cơ bản:
- Trừu tượng (Abstraction) – Chỉ cung cấp thông tin thiết yếu cho bên ngoài, che giấu chi tiết triển khai. Ví dụ: web server che giấu cách xử lý dữ liệu, người dùng chỉ gọi endpoint và nhận kết quả.
- Đóng gói (Encapsulation) – Gắn kết các thành viên dữ liệu (biến, thuộc tính) và hàm thành viên (phương thức) thành một đơn vị. Cũng là cách hạn chế truy cập vào một số thuộc tính.
- Kế thừa (Inheritance) – Khả năng tạo lớp mới từ lớp hiện có. Lớp con kế thừa thuộc tính và phương thức của lớp cha và có thể mở rộng thêm. Ví dụ: lớp
Vehiclecó màu sắc, giá; lớpCarvàBikekế thừa và thêm thuộc tính riêng (số cửa sổ cho xe hơi). - Đa hình (Polymorphism) – "Nhiều hình thái". Thường xảy ra khi có hệ thống phân cấp lớp liên quan bằng kế thừa. Gọi hàm thành viên sẽ thực thi hàm khác nhau tùy theo kiểu đối tượng gọi. Ví dụ: lớp
Shapecó phương thứcgetArea, hình tròn và vuông tính diện tích khác nhau.
Bạn có thể tham khảo hướng dẫn C++ OOP tuyệt vời tại tutorials point để bắt đầu học.