Oop la gì

OOP (Object Oriented Programming), hay còn gọi là lập trình hướng đối tượng là một trong những phương pháp lập trình đang ngày càng trở nên phổ biến hiện nay. Trong bài viết dưới đây, hãy cùng ITPlus tìm hiểu ngay khái niệm cũng như những đặc điểm cơ bản của OOP nhé!

OOP (Object Oriented Programming) hay Lập trình hướng đối tượng là một kỹ thuật lập trình, trong đó cho phép lập trình viên tạo ra các đối tượng trong code mô tả một cách trừu tượng hóa các đối tượng trong đời sống.

Trong OOP, đối tượng chứa đựng các dữ liệu, trên các trường thường được gọi là thuộc tính. Các mã nguồn được tổ chức thành các phương thức giúp đối tượng có thể truy xuất, hiệu chỉnh các trường dữ liệu của đối tượng khác mà đối tượng hiện tại đang có tương tác.

Nhắc đến OOP, chúng ta cần quan tâm đến 2 khái niệm chính: Đối tượng (Object) và Lớp (Class)

  • Đối tượng (Object) trong OOP bao gồm: (1) Thuộc tính (Attribute): những thông tin, đặc điểm của 1 đối tượng; (2) Phương thức (Method): Những hành vi mà đối tượng có thể thực hiện. Một cách đơn giản hơn, thuộc tính mô tả đối tượng đó có những tính chất gì, trong khi phương thức là phương tiện để sử dụng đối tượng đó.
  • Lớp (Class): Một lớp sẽ bao gồm những đối tượng có đặc tính tương tự nhau về thuộc tình và phương thức. Có thể nói, lớp là sự trừu tượng hóa của các nhóm đối tượng.

Ví dụ: Các dòng điện thoại như Samsung, Oppo, Iphone,.. là các đối tượng thuộc lớp điện thoại thông minh.

Oop la gì

Lập trình hướng đối tượng bao gồm 4 đặc tính cơ bản nhất, cụ thể bao gồm:

  • Tính đóng gói (Encapsulation): Điều này được thể hiện qua việc các đối tượng và phương thức có liên quan được đóng gói thành từng lớp (class) nhỏ và được xây dựng để thực hiện một nhóm chức năng đặc trưng riêng. Đặc tính này đồng thời giúp che giấu mọt số thông tin và những cài đặt nội bộ nhằm tránh sự rò rỉ thông tin ra bên ngoài
  • Tính kế thừa (Inheritance): Đúng như cái tên của nó, các lớp dữ liệu mang tính kế thừa nhau. Các lớp cha có thể chia sẻ các dữ liệu và phương thức cho các lớp con, từ đó các lớp con có thể kế thừa và bổ sung thêm các thành phần mới của riêng mình.

Một số loại kế thừa thường gặp gồm: đơn kế thừa, đa kế thừa, kế thừa đa cấp, kế thừa thứ bậc. Điều này giúp các lập trình viên tiết kiệm thời gian và công sức trong việc lập trình các lớp có những đặc tính giống nhau.

  • Tính đa hình (Polymorphism): Tính đa hình là một hành động có thể thực hiện bằng những cách khác nhau. Nói một cách đơn giản hơn, đa hình là khái niệm trong đó nhiều lớp có những phương thức giống nhau, nhưng được thực hiện bằng những cách thức khác nhau.
  • Tính trừu tượng (Abstraction): Trừu tượng là việc bạn tổng quát hóa một cái gì đó và không quá chú ý đến những cái bên trong. Áp dụng trong lập trình OOP, đó là việc bạn chọn ra các thuộc tính, phương thức của đối tượng cần trong việc lập trình

Hy vọng rằng bài viết dưới đây đã mang lại cho bạn những kiến thức khái quát nhất về OOP, cũng như ứng dụng nó trong thực tiễn.

------------------------------------------------------------------------------------------------------

Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ OOP. Vậy lập trình hướng đối tượng là gì? Và các nguyên lý cơ bản trong OOP cần biết là gì?

OOP (viết tắt của Object Oriented Programming) – lập trình hướng đối tượng 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 thao tác hơn là logic để thao tác chúng.

Mục tiêu của OOP là tối ưu việc quản lý source code, giúp tăng khả năng tái sử dụng và quan trọng hơn hết là giúp tóm gọn các thủ tục đã biết trước tính chất thông qua việc sử dụng các đối tượng.

Đối tượng (Object) và Lớp (Class) trong OOP 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): là những thông tin, đặc điểm của đối tượng
  • Phương thức (Method): là những hành vi mà đối tượng có thể thực hiện

Để dễ hình dung, ta có một ví dụ thực tế về đối tượng là smartphone. Đối tượng này sẽ có:

  • Thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
  • Phương thức: gọi điện, chụp ảnh, nhắn tin, ghi âm…

Lớp (Class)

Lớp là sự trừu tượng hóa của đối tượng. Những đối tượng 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 sẽ bao gồm 2 thông tin là thuộc tính và phương thức.

Một đối tượng sẽ được xem là một thực thể của lớp.

Tiếp nối ví dụ ở phần đối tượng (object) phía trên, ta có lớp (class) smartphone gồm 2 thành phần:

  • Thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
  • Phương thức: gọi điện, chụp ảnh, nhắn tin, ghi âm…

Các đối tượng của lớp này có thể là: iPhone, Samsung, Oppo, Huawei…

Ưu điểm của lập trình hướng đối tượng OOP:

  • OOP mô hình hóa những thứ phức tạp dưới dạng cấu trúc đơn giản.
  • Code OOP có thể sử dụng lại, giúp tiết kiệm tài nguyên.
  • Giúp sửa lỗi dễ dàng hơn. So với việc tìm lỗi ở nhiều vị trí trong code thì tìm lỗi trong các lớp (được cấu trúc từ trước) đơn giản và ít mất thời gian hơn.
  • Có tính bảo mật cao, bảo vệ thông tin thông qua đóng gói.
  • Dễ mở rộng dự án.

4 đặc tính cơ bản của OOP là :

Tính đóng gói

Tính đóng gói và che dấu thông tin của OOP thường không cho phép người dùng sử dụng đối tương để thay đổi trạng thái nội tại của đối tượng. Tính chất này đảm bảo sự toàn vẹn của đối tượng. Chỉ có các phương thức nội tại của đối tượng mới có thể cho phép thay đổi trạng thái của nó. Việc cho phép môi trường tác động lên dữ liệu nội tại là tùy thuộc hoàn toàn vào người viết mã.

Tính kế thừa

Thuộc tính này của OOP cho phép một đối tượng có thể có sẵn các đặc tính mà đối tượng khác đã có, thông qua tính kế thừa. Cho phép các đối tượng chia sẻ cũng như mở rộng các đặc tính sẵn có mà không cần phải định nghĩa lại. Tuy vậy, không phải bất cứ ngôn ngữ định hướng nào cũng đều có tính chất này. Mà việc kế thừa chỉ có thể là lớp con thừa hưởng những gì lớp cha có và cho phép.

Tính đa hình

Tính chất này của lập trình hướng đối tượng thể hiện ở việc gửi các thông điệp. Các phương thức để trả lời cho một thông điệp sẽ tùy vào đối tượng để có phản ứng khác nhau. Lập trình viên có thể định nghĩa một đặc tính cho loạt những đối tượng gần nhau. Tính đa hình này cho phép các chức năng khác nhau được thực thi khác nhau trên các đối tượng khác nhau.

Tính trừu tượng

Tính trừu tượng cho phép lập trình hướng đối tượng có khả năng tập trung vào những cái cốt lõi, cần thiết nhất. Mỗi đối tượng có thể hoàn tất công việc nội bộ, báo cáo, thay đổi trạng thái, liên lạc với các đối tượng khác. Tính trừu tượng được xác định trong khái niệm lớp trừu tượng tập trung vào cốt lõi, bỏ qua những thứ không quan trọng của đối tượng.