Mình sẽ giới thiệu đôi nét cơ bản về OOP (Object Oriented Programming) và từ đó để cùng bổ sung thêm kiến thức cho nhau mọi người nhé.
Vô thẳng vấn đề luôn nha, vậy lập trình hướng đối tượng (OOP) là gì vậy ta ?
=> Là kỹ thuật cho phép lập trình viên tạo ra các đối tượng trong code và từ đó trừu tượng hóa các đối tượng thực tế trong cuộc sống. Điển hình sẽ chia thành 2 loại thông tin cần thiết là thuộc tính (Attribute) và phương thức (method).
Lấy ví dụ về điện thoại:
+ Thuộc tính ( attribute): thông tin và đặc điểm của đối tượng (điện thoại)
=> vỏ điện thoại, màu sắc, dung lượng, hệ điều hành…
+ Phương thức (method): hành vi mà đối tượng thực hiện (điện thoại)
=> nghe điện thoại, gọi , chụp hình, ghi âm, nghe nhạc….
Ưu và nhược điểm của OOP:
Ưu | Nhược |
. Dễ quản lý code khi có sự thay đổi chương trình . Dễ mở rộng dự an . Tính bảo mật cao . Có thể sử dụng mà nguồn, tiết kiệm tài nguyên |
. Dữ liệu xử lý tách rời, cấu trúc dữ liệu thay đổi => thuật toán thay đổi theo OOP không tự động khởi tạo và giải phóng dữ liệu động . Không mô tả được đầy đủ và trung thực hệ thống trong thực tế |
Đặc tính cơ bản của OPP (gồm 4 đặc tính được liệt kê ở dưới đây)
- Tính đóng gói (encapsulation):
Người dùng không được trực tiếp tác động đến dữ liệu bên trong của đối tượng, cần phải thông qua các phương thức đối tượng cung cấp, 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.
- Tính kế thừa (Inheritance):
Cho phép xây dựng lớp mới dựa trên lớp đã có (lớp từ cha truyền con , chia sẽ dữ liệu và phương thức), lớp con không cần định nghĩa lại, có thể bổ sung các thành phần mới, tái sử dụng mã nguồn được tối ưu.
- Tính đa hình (Polymorphism):
Cho phép đối tượng khác nhau thực hiện giống chức năng nhưng theo các cách khác nhau
- Tính trừu tượng (Abstraction):
Tập trung vào tính cốt yếu của đối tượng, bỏ qua những vấn đề không cần thiết và không liên quan.
Giới thiệu thêm về 1 số ngôn ngữ lập trình OOP
- Python: ngôn ngữ lập trình hướng đối tượng bậc cao, dùng để phát triển website, machine learning ( ngôn ngữ có cú pháp đơn giản )
- Java: ngôn ngữ lập trình hướng đối tượng phổ biến nhất, các sản phẩm được xây dựng bằng Java có thể chạy được trên bất kỳ nền tảng nào.
- PHP: ngôn ngữ lập trình hướng đối tượng đa mục đích, ngôn ngữ kịch bản mã nguồn mở.
- Ruby: một trong các ngôn ngữ lập trình thuần OOP, là ngôn ngữ thông dịch, bậc cao đa năng.
Trên đây chỉ là 1 vài khái niệm cơ bản về OOP mà thôi, vẫn còn rất là nhiều nhé…