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

OOP ( viết tắt của Object Oriented Programming ) – lập trình hướng đối tượng là một chiêu thức lập trình dựa trên khái niệm về lớp và đối tượng. OOP tập trung chuyên sâu vào những đối tượng thao tác hơn là logic để thao tác chúng, giúp code dễ quản trị, tái sử dụng được và dễ bảo dưỡng .
Bất kỳ developer nào muốn đi trên con đường lập trình cũng đều phải biết về OOP .
Đọc bài viết này để biết :

  • OOP là gì? Đối tượng và lớp trong OOP là gì?
  • Các đặc tính cơ bản của OOP là gì?
  • Các ngôn ngữ OOP phổ biến và tài liệu tham khảo

Tham khảo việc làm OOP Developer trên ITviec.

Lập trình hướng đối tượng (OOP) là gì? OOP được dùng để làm gì?

OOP ( viết tắt của Object Oriented Programming ) – lập trình hướng đối tượng là một giải 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 chuyên sâu vào những đối tượng thao tác hơn là logic để thao tác chúng .
OOP là nền tảng của những design pattern lúc bấy giờ .
Mục tiêu của OOP là tối ưu việc quản trị source code, giúp tăng năng lực tái sử dụng và quan trọng hơn hết là giúp tóm gọn những thủ tục đã biết trước đặc thù trải qua việc sử dụng những đối tượng .

Đối tượng (Object) và Lớp (Class) trong OOP là gì?

Đối tượng (Object)

Đối tượng trong OOP gồm có 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ễ tưởng tượng, ta có một ví dụ thực tiễn 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ựa như nhau sẽ được tập hợp thành một lớp. Lớp cũng sẽ gồm có 2 thông tin là thuộc tính và phương pháp .
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 hoàn toàn 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

Tính đóng gói (Encapsulation)


Tính đóng gói được cho phép che giấu thông tin và những đặc thù giải quyết và xử lý bên trong của đối tượng. Các đối tượng khác không hề ảnh hưởng tác động trực tiếp đến tài liệu bên trong và làm đổi khác trạng thái của đối tượng mà bắt buộc phải trải qua những phương pháp công khai minh bạch do đối tượng đó phân phối .
Tính chất này giúp tăng tính bảo mật thông tin cho đối tượng và tránh thực trạng tài liệu bị hư hỏng ngoài ý muốn .

Tính kế thừa (Inheritance)

Đây là đặc thù được sử dụng khá nhiều. Tính thừa kế được cho phép kiến thiết xây dựng một lớp mới ( lớp Con ), thừa kế và tái sử dụng những thuộc tính, phương pháp dựa trên lớp cũ ( lớp Cha ) đã có trước đó .
Các lớp Con thừa kế hàng loạt thành phần của lớp Cha và không cần phải định nghĩa lại. Lớp Con hoàn toàn có thể lan rộng ra những thành phần thừa kế hoặc bổ trợ những thành phần mới .
Ví dụ :

  • Lớp Cha là smartphone, có các thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
  • Các lớp Con là iPhone, Samsung, Oppo cũng có các thuộc tính: màu sắc, bộ nhớ, hệ điều hành…

Tính đa hình (Polymorphism)

Tính đa hình trong lập trình OOP được cho phép những đối tượng khác nhau thực thi công dụng giống nhau theo những cách khác nhau .

Ví dụ: 

  • Ở lớp smartphone, mỗi một dòng máy đều kế thừa các thành phần của lớp cha nhưng iPhone chạy trên hệ điều hành iOS, còn Samsung lại chạy trên hệ điều hành Android.
  • Chó và mèo cùng nghe mệnh lệnh “kêu đi” từ người chủ. Chó sẽ “gâu gâu” còn mèo lại kêu “meo meo”.

Tính trừu tượng (Abstraction)

Tính trừu tượng giúp vô hiệu những thứ phức tạp, không thiết yếu của đối tượng và chỉ tập trung chuyên sâu vào những gì cốt lõi, quan trọng .
Ví dụ : Quản lý nhân viên cấp dưới thì chỉ cần chăm sóc đến những thông tin như :

  • Họ tên
  • Ngày sinh
  • Giới tính

Chứ không cần phải quản trị thêm thông tin về :

  • Chiều cao
  • Cân nặng
  • Sở thích
  • Màu da

Những ngôn ngữ OOP phổ biến nhất

Java

Java là ngôn từ lập trình hướng đối tượng ( OOP ), đa mục tiêu và độc lập nền tảng. Thay vì biên dịch mã nguồn thành mã máy trên nền tảng đơn cử, code Java được biên dịch thành bytecode – một định dạng trung gian. Bytecode sau đó sẽ được chạy bởi môi trường tự nhiên thực thi ( runtime environment ) .
Code Java “ viết một lần, chạy mọi nơi ” nên khá lý tưởng cho những người mới tìm hiểu và khám phá .

Tham khảo : 12 tài liệu học lập trình Java tinh lọc

C++

Là một ngôn từ lập trình hướng đối tượng được tăng trưởng bởi Bjarne Stroustrup nhưng C + + mang cả 2 phong thái : lập trình hướng cấu trúc giống C và có thêm phong thái hướng đối tượng. Nếu đã quen với lập trình hướng cấu trúc trước đó thì việc học C + + không phải là điều quá khó khăn vất vả .

PHP

PHP là ngôn từ lập trình đa mục tiêu, được rất nhiều Developer sử dụng. Đây là ngôn từ ngữ cảnh mã nguồn mở, chạy ở phía server và được dùng để tạo ra những ứng dụng web .

JavaScript

JavaScript là ngôn từ lập trình được sử dụng trong việc kiến thiết xây dựng những website có tính tương tác cao, với mức độ thông dụng được xếp hạng bậc nhất. Học JavaScript khá thuận tiện và đặc biệt quan trọng tương thích cho những developer mới mở màn học lập trình .

Python

Python là ngôn từ lập trình hướng đối tượng bậc cao, dùng để tăng trưởng website và nhiều ứng dụng khác nhau. Python được tạo ra bởi Guido van Rossum và được tăng trưởng trong một dự án Bất Động Sản mã mở ( open source ) .

Với cú pháp cực kì đơn giản và thanh lịch, Python là lựa chọn hoàn hảo cho những ai lần đầu tiên học lập trình. 

Tham khảo : 20 tài liệu lập trình Python từ cơ bản đến nâng cao

Robby2Robby2

Bạn thấy bài viết hay và cần thiết với nhiều người? Đừng ngại nhấn nút Share bên dưới nhé.

Và đừng quên tham khảo việc làm OOP Developer trên ITviec.