Lập trình hướng đối tượng (OOP – Object-Oriented Programming) là một phương pháp lập trình dựa trên khái niệm “đối tượng” (objects). Trong OOP, các đối tượng này đại diện cho các thực thể trong thế giới thực, mỗi đối tượng có các thuộc tính (properties) và hành vi (methods) riêng. Các đối tượng tương tác với nhau để thực hiện các tác vụ, giúp mã dễ quản lý, mở rộng, và tái sử dụng.
Danh mục bài viết
ToggleCác đặc trưng quan trọng của OOP
OOP có bốn đặc trưng chính là tính đóng gói, kế thừa, đa hình và trừu tượng. Cùng tìm hiểu chi tiết từng đặc trưng
Tính đóng gói (Encapsulation)

- Định nghĩa: Tính đóng gói là việc gói gọn dữ liệu và phương thức (hành vi) vào bên trong một đối tượng, giới hạn quyền truy cập trực tiếp từ bên ngoài vào dữ liệu của đối tượng. Chỉ những phương thức được định nghĩa trong đối tượng mới có thể thao tác trực tiếp với dữ liệu của đối tượng đó.
- Ví dụ: Một đối tượng “Ngân hàng” có thông tin về số dư của tài khoản. Tính đóng gói cho phép giới hạn quyền truy cập trực tiếp vào số dư, chỉ các phương thức nội tại như
nạp tiền
hayrút tiền
mới có thể thay đổi số dư này. - Lợi ích: Tăng tính bảo mật và tính toàn vẹn của dữ liệu, chỉ cho phép các thao tác an toàn, tránh các thay đổi bất ngờ.
Tính kế thừa (Inheritance)

- Định nghĩa: Tính kế thừa cho phép một lớp con (subclass) thừa hưởng các thuộc tính và phương thức từ một lớp cha (superclass). Lớp con có thể thêm hoặc ghi đè các phương thức để mở rộng hoặc thay đổi hành vi của lớp cha.
- Ví dụ: Một lớp
Động vật
có phương thứcdi chuyển
. Lớp conChó
kế thừa từĐộng vật
và có thể bổ sung phương thứcsủa
, trong khi lớpChim
cũng kế thừa từĐộng vật
nhưng có thể bổ sung phương thứcbay
. - Lợi ích: Tái sử dụng mã, giảm trùng lặp mã, giúp hệ thống dễ dàng mở rộng.
Tính đa hình (Polymorphism)
- Định nghĩa: Tính đa hình cho phép các đối tượng thuộc các lớp khác nhau có thể được sử dụng với cùng một giao diện (interface). Điều này cho phép các phương thức hoặc hành vi có thể thay đổi tùy thuộc vào lớp mà đối tượng đang sử dụng.
- Ví dụ: Một phương thức
làm việc
có thể được định nghĩa khác nhau cho các lớpNhân viên
vàQuản lý
. Khi gọilàm việc
từ đối tượng thuộc lớpNhân viên
, phương thức này sẽ thực hiện hành động khác so với khi gọi từ đối tượng thuộc lớpQuản lý
. - Lợi ích: Linh hoạt và cho phép hệ thống mở rộng dễ dàng mà không cần thay đổi nhiều mã hiện tại.
Tính trừu tượng (Abstraction)
- Định nghĩa: Tính trừu tượng là quá trình tạo ra một lớp hoặc một giao diện tổng quát, chỉ tập trung vào các đặc điểm quan trọng và bỏ qua các chi tiết không cần thiết. Điều này giúp đơn giản hóa vấn đề và giảm thiểu sự phức tạp.
- Ví dụ: Một lớp
Hình học
có thể định nghĩa phương thức trừu tượngtính diện tích
, không cần biết cụ thể loại hình nào. Các lớp con nhưHình tròn
vàHình vuông
sẽ cài đặt phương thức này theo cách riêng, tính diện tích dựa trên công thức của từng loại hình. - Lợi ích: Giảm sự phức tạp, giúp dễ dàng mở rộng và quản lý mã.
Kết Luận
OOP là một phương pháp mạnh mẽ và dễ tiếp cận, giúp tổ chức mã theo hướng đối tượng, từ đó tăng cường khả năng mở rộng, bảo trì và tái sử dụng mã. Bốn đặc trưng chính của OOP (tính đóng gói, kế thừa, đa hình và trừu tượng) không chỉ giúp lập trình viên tạo ra các hệ thống có cấu trúc rõ ràng, mà còn làm giảm đáng kể độ phức tạp trong việc quản lý mã nguồn và phát triển các ứng dụng lớn.
Nguồn tham khảo video (Thân triệu)