Lập trình hướng đối tượng là gì?
Mục lục nội dung
Lập trình hướng đối tượng (OOP) là một trong những kỹ thuật lập trình quan trọng bạn cần biết. Trong bài viết dưới đây, chúng ta hãy cùng tìm hiểu về OOP và những kiến thức hấp dẫn về OOP.
1. Lập trình hướng đối tượng là gì?
Lập trình hướng đối tượng (Object Oriented Programming - OOP) là một phương pháp lập trình dựa trên khái niệm về đối tượng, lớp. Trong đó:
+ Đối tượng (Object) gồm hai thành phần là thuộc tính (Attribute) và phương thức (Method). Thuộc tính là thông tin đặc điểm của đối tượng còn phương thức là những thao tác, hành động mà đối tượng đó thực hiện.
+ Lớp (class) là kiểu dữ liệu gồm thuộc tính cùng với các phương thức được định nghĩa từ trước. Nói một cách dễ hiểu hơn thì lớp là sự kết hợp giữa các đối tượng có cùng đặc tính, được gộp lại thành một lớp.
Ví dụ:
Lớp (class) xe máy có đối tượng (Object) là các hãng Honda, Suzuki…Trong đó, các thuộc tính (Attribute) là màu sơn, kiểu xe… còn phương thức (Method) là cách khởi động xe, cách mở cốp xe…
Những ưu điểm của phương pháp lập trình hướng đối tượng là:
+ Dễ quản lý code khi thay đổi.
+ Dễ dàng trong việc mở rộng dự án (project).
+ Tính bảo mật cao hơn.
+ Có thể tận dụng mã nguồn mở, tiết kiệm tài nguyên và thời gian.
2. Những đặc điểm cơ bản trong lập trình hướng đối tượng
2.1. Tính kế thừa (Inheritance)
Tính kế thừa cho phép xây dựng một lớp mới dựa trên các định nghĩa của lớp đã có. Có nghĩa là lớp chính có thể chia sẻ dữ liệu và phương thức cho các lớp con. Ngoài ra, các lớp con có thể mở rộng thêm thành phần mới. Một số loại kế loại kế thừa thường gặp: đơn kế thừa, đa kế thừa, kế thừa đa cấp, kế thừa thứ bậc.
Như ví dụ của phần trước, class xemay sẽ bao gồm các thuộc tính: mauson, kieuxe. Một class xeHonda, xe Suzuki sẽ kế thừa những thuộc tính từ class xemay như mauson, kieuxe. Bằng cách tạo ra một lớp chính cùng với các lớp phụ nên chúng ta có thể kế thừa thuộc tính từ các lớp chính sang các lớp phụ.
2.2. Tính đóng gói (Encapsulation)
Tính đóng gói sẽ che giấu thông tin và những tính chất xử lý bên trong của đối tượng. Thông qua các phương thức mà đối tượng cung cấp mới có 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.
2.3. Tính đa hình (Polymorphism)
Tính đa hình cho phép các phương pháp (method) khác nhau được thực thi khác nhau trên các đối tượng khác nhau.
Ví dụ: Ở lớp xe ga thì mỗi chiếc xe đều kế thừa các thuộc tính ở lớp xe máy nhưng có xe dùng ổ khoá smart key còn xe thì dùng ổ khoá thường, có xe phân khối 125cc và xe có phân khối 150cc.
Hai đứa trẻ cùng nghe lời mẹ dặn là "ăn bánh" nhưng một người ăn bánh rán còn người kia ăn bánh bao.
2.4. Tính trừu tượng (Abstraction)
Tính trừu tượng giúp loại bỏ những thứ rườm rà, không quan trọng của đối tượng và chỉ tập trung vào những thứ cần thiết, quan trọng.
Ví dụ: Quản lý số học sinh giỏi trong lớp cần ưu tiên những chỉ tiêu như Họ tên, giới tính, ngày tháng năm sinh, điểm số mà không cần quan tâm đến những chỉ tiêu khác như quốc tịch, ngày thi, cân nặng vì nó không cần thiết.
3. Những ngôn ngữ lập trình hướng đối tượng phổ biến
Python: là ngôn ngữ lập trình hướng đối tượng bậc cao, khá phổ biến và thường dùng để phát triển website và nhiều ứng dụng khác nhau trên các nền tảng khác nhau.
Java: là một ngôn ngữ lập trình hiện đại, bậc cao, hướng đối tượng, bảo mật và mạnh mẽ Trong Java, mọi thứ đều là một Object. Java có thể dễ dàng mở rộng và bảo trì vì nó được xây dựng dựa trên mô hình Object.
C# (C sharp): là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm 2000. C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.
Ruby: được tạo ra bởi Yukihiro "Matz" Matsumoto từ năm 1993 và đưa ra bản chính thức vào năm 1995, Ruby là một trong những ngôn ngữ hiếm hoi bắt nguồn từ châu Á sớm nhất - Nhật Bản.
Swift: đây là ngôn ngữ được ứng dụng nhiều nhất trên hệ điều hành iOS và macOS, và theo Apple giải thích thì Swift nhanh gần gấp 3 lần Obj-C và nhanh hơn 8 lần so với ngôn ngữ Python.
Object-C: là một trong các ngôn ngữ được ứng dụng để lập trình các ứng dụng dành cho hệ điều hành macOS và iOS. Đây là một trong những trong những ngôn ngữ lập trình ra đời sớm nhất, được phát triển bởi NeXT vào những năm 80.
Với những kiến thức và chia sẻ về lập trình hướng đối tượng trong bài viết, bạn có thể nắm những kiến thức cơ bản về phương pháp này. Chúc các bạn thành công!