Lập trình hướng đối tượng (OOP) chắc hẳn bạn đã từng nghe đâu đó khi tìm hiểu về lập trình. Tuy nhiên khi đọc lý thuyết sẽ khiến cho bạn cảm thấy khó hiểu. Trong bài viết này mình sẽ giải thích cụ thể và chi tiết hơn về OOP. Giúp cho bạn có cái nhìn tổng quan về khái niệm này.
Vậy lập trình hướng đối tượng là gì?
OOP là viết tắt của từ Object-oriented programming được hiểu là lập trình hướng đối tượng. Đây là mô hình được phát triển dựa trên các đối tượng thực trong cuộc sống.
Khi sử dụng OOP các chương trình sẽ rất dễ bảo trì và tái sử dụng. Không những thế các đoạn code sẽ được giảm đi rất nhiều.
Hiện nay đa số các ngôn ngữ lập trình đều hỗ trợ OOP như PHP, Java, C#, Python, Kotlin….
Hay trong một số framework nổi tiếng được viết bằng PHP như Codeigniter, Laravel, Cakephp đều sử dụng hướng đối tượng theo mô hình MVC.
Khái niệm quan trọng trong lập trình hướng đối tượng
Để hiểu rõ hơn về OOP bạn cần nắm rõ một số khái niệm sau đây:
1. Oject (Đối tượng)
Object được hiểu như một đối tượng trong thực tại. Trong Object sẽ bao gồm các thông tin về thuộc tính và phương thức.
- Thuộc tính là những thông tin và đặc điểm. Chẳng hạn như một người sẽ có màu da, màu mắt, kiểu tóc, chiều cao, cân nặng.
- Phương thức là hành động, hành vi của một đối tượng. Chẳng hạn như chạy, nhảy, ngồi, nằm vv..
2. Class (Lớp)
Class là một khuôn mẫu. Object sẽ dựa trên khuôn mẫu đó xây dựng nên đối tượng. Chẳng hạn khi nói tới con người thì đối tượng cần xác định đó là một người nào đó như Nam, Hoàng, Vân…
Hoặc là nói tới xe ô tô thì đối tượng xác định là Honda, Huyndai, Toyota …
Ưu điểm của lập trình hướng đối tượng
- Khi sử dụng OOP lập trình viên sẽ tiết kiệm được tài nguyên trong hệ thống
- Tiếp theo là cấu trúc logic, dễ hiểu
- Thứ ba là khả năng bảo trì, sửa lỗi trở nên dễ dàng hơn
- Bảo mật, bảo vệ thông tin an toàn thông qua tính đóng gói
- Khả năng mở rộng dự án
Các nguyên lý cơ bản trong lập trình hướng đối tượng là gì?
OOP có 3 nguyên đáng chú ý sau đây:
1. Tính đóng gói (Encapsulation)
Tính đóng gói giúp che giấu thông tin và bảo mật. Các đối tượng khác không thể truy cập hoặc sửa đổi hay nhìn thấy thông tin.
Trong OOP có 4 giới hạn quyền truy cập bao gồm: defaul, public, protected, private.
Đọc thêm: Public, Private, Protected trong PHP
2. Tính kế thừa (Inheritance)
Kế thừa cho phép xây dựng một lớp mới dựa trên lớp cha được định nghĩa trước đó. Qua đó lớp con sẽ thừa hưởng mọi đặc điểm của lớp cha.
Các loại kế thừa: đơn kế thừa, kế thừa đa cấp, đa kế thừa và kế thừa thứ bậc.
Lấy ví dụ ta có một Class về xe ô tô có các thông tin như màu sắc, giá cả, 4 bánh… Ta sẽ có một lớp con là Huyndai sẽ kế thừa tất cả các thông tin đó.
3. Tính đa hình (Polymorphism)
Khi một hành động được thực hiện dưới nhiều cách thức khác nhau được gọi là đa hình.
Một ví dụ đơn giản đó là nói tới tiếng kêu của động vật thì con chó sẽ sủa “gâu gâu”, con mèo sẽ “meo meo” hoặc con chim sẽ có tiếng hot vv…
4. Tính trừu tượng (Abstraction)
Khái niệm này khi nhắc tới cũng cảm thấy trừu tượng rồi. Tính trừu tượng chỉ nêu lên vấn đề mà không hiển thị cụ thể. Chỉ nêu lên sự tổng quát mà không quan tâm tới chi tiết bên trong.
Ví dụ tính năng gửi form đăng ký trên website. Chúng ta chỉ cần quan tâm tới hành động của người dùng điền form rồi ấn nút gửi đi. Còn quy trình hoạt động của dữ liệu như thế nào thì không được nhắc đến.
Các ngôn ngữ lập trình hướng đối tượng phổ biến hiện nay
1. Ngôn ngữ PHP
PHP là ngôn ngữ có số lượng lập trình viên khá đông đảo. Không những thế website trên toàn thế giới sử dụng PHP tương đối lớn.
Một số Framework PHP nổi tiếng sử dụng hướng đối tượng theo mô hình MVC như Codeigniter, Laravel…
2. Ngôn ngữ Java
Java là ngôn ngữ lập trình hướng đối tượng khá mạnh mẽ. Khi tìm hiểu về Java bạn hoàn toàn làm việc với OOP.
3. Ngôn ngữ C#
C# được phát triển bởi Microsoft. Đây cũng là ngôn ngữ hỗ trợ OOP khá tốt.
4. Ngôn ngữ Python
Python là ngôn ngữ hướng đối tượng bậc cao. Với cấu trúc và cú pháp đơn giản, dễ hiểu giúp cho người mới tìm hiểu về lập trình tiếp cận dễ dàng.
5. Ngôn ngữ Ruby
Ruby cũng là ngôn ngữ lý tưởng giúp bạn tiếp cận OOP nhanh chóng.
Kết luận: Với khái niệm về lập trình hướng đối tượng là gì trên đây có lẽ đã giúp bạn phần nào nắm được OOP. Nếu bạn là người mới thì nên chọn một ngôn ngữ nhất định để học và nắm rõ. Chúc bạn học tập hiệu quả.