Hướng đối tượng (tiếng anh: Object Oriented Programming) là một phương pháp lập trình dựa trên khái niệm về lớp và đối tượng. OOP tập trung vào các đối tượng hơn là logic để thao tác với chúng, giúp dễ quản lý, sử dụng và bảo trì code.
Vì đây là một phần rất quan trọng nên bất kỳ Developer nào muốn đi trên con đường lập trình đều phải biết về OOP. Đặc biệt trong các buổi phỏng vấn việc IT thường có các câu hỏi liên quan đến nội dung OOP này.
Trong bài này mình sẽ đề cập tới:
- Đối tượng (Object) và Lớp (Class) trong OOP là gì?
- Các đặc tính cơ bản của OOP
Đối tượng (Object) và Lớp (Class) trong Hướng đối tượng là gì?
Đối tượng (Object)
Đối tượng trong OOP bao gồm 2 thành phần chính:
- Thuộc tính (Attribute): thông tin, đặc điểm của đối tượng
- Phương thức (Method): hành vi của đối tượng
Ví dụ: Đối tượng là Cat (con mèo) sẽ có
- Thuộc tính: giới tính, màu lông, tuổi…
- Phương thức: ăn, ngủ, bắt chuột…
Lớp (Class)
Class là trừu tượng hóa của đối tượng. Những Object có những đặc tính tương tự nhau sẽ được tập hợp thành một lớp. Lớp cũng bao gồm Attribute (thuộc tính) và Method (phương thức).
Một Object được xem là một thực thể (instance) của Class.
Tiếp nối ví dụ phần Object thì class Cat có các đối tượng có thể là: Mèo tam thể, Mèo mun…
Các đặc tính cơ bản của OOP
1. Tính đóng gói (Encapsulation)
Tính đóng gói cho phép che giấu thông tin và những tính chất xử lý bên trong của đối tượng. Các đối tượng khác không thể tác động trực tiếp đến dữ liệu bên trong và làm thay đổi trạng thái của đối tượng mà bắt buộc phải thông qua các phương thức công khai do đối tượng đó cung cấp.
Tính chất này giúp tăng tính bảo mật cho đối tượng và tránh tình trạng dữ liệu bị hư hỏng ngoài ý muốn.
2. Tính kế thừa (Inheritance)
Tính kế thừa cho phép xây dựng một lớp mới (lớp Con), kế thừa và tái sử dụng các thuộc tính, phương thức dựa trên lớp cũ (lớp Cha) đã có trước đó.
Các lớp Con kế thừa toàn bộ thành phần của lớp Cha và không cần phải định nghĩa lại. Lớp Con có thể mở rộng các thành phần kế thừa hoặc bổ sung những thành phần mới.
Ví dụ:
- Lớp cha là Cat có các thuộc tính: giới tính, màu lông, tuổi
- Các lớp con như Mèo tam thể, Mèo mun cũng có các thuộc tính như lớp cha
3. Tính đa hình (Polymorphism)
Tính đa hình trong lập trình OOP cho phép các đối tượng khác nhau thực thi chức năng giống nhau theo những cách khác nhau.
Ví dụ: Lớp Động vật có các Phương thức (method) là speak().
Với Class con Cat thì thực thi phương thức speak() sẽ “meo meo”.
Còn Class con Dog thì thực thi phương thức speak() sẽ “gâu gâu”.
4. Tính trừu tượng (Abstraction)
Tính trừu tượng giúp loại bỏ những thứ phức tạp, không cần thiết của đối tượng và chỉ tập trung vào những gì cốt lõi, quan trọng.
Ví dụ: Quản lý Sinh viên thì chỉ cần quan tâm đến những thông tin như:
- Mã SV
- Họ tên
- Ngày sinh
- Giới tính
Chứ không cần phải quản lý thêm thông tin về:
- Chiều cao
- Cân nặng
- Sở thích
Nguồn: viblo.asia