4 tính chất của OOP – Lập trình hướng đối tượng

OOP là mô hình lập trình phổ biến nhất. Nó được giảng dạy như một tiêu chuẩn lập trình cho các lập trình viên. Hãy cùng tìm hiểu về 4 tính chất của OOP nhé. 

OOP là gì?

OOP có nghĩa là Object Oriented Programming.

Trước hết, hãy cùng tìm hiểu OOP là gì. OOP là từ viết tắt cho cụm từ Object Oriented Programming. Object Oriented Programming nghĩa là lập trình hướng đối tượng. Đây là một cách lập trình máy tính hay còn gọi là thiết kế phần mềm. ập trình viên sẽ xác định dạng dữ liệu của một cấu trúc dữ liệu, loại hàm có thể áp dụng cho cấu trúc dữ liệu đó. Bằng cách này, cấu trúc dữ liệu trở thành một đối tượng bao gồm cả dữ liệu và hàm.

Ngoài ra, lập trình viên có thể xây dựng mối liên hệ giữa một đối tượng này với một đối tượng khác. Ví dụ, các đối tượng có thể kế thừa các đặc tính của đối tượng khác. (Đây là một tính chất của OOP, sẽ được nhắc đến kỹ hơn ở phía sau).

Lợi thế của OOP so với lập trình thủ tục là chúng cho phép lập trình viên tạo ra các mô đun không cần thay đổi khi một dạng dữ liệu mới được thêm vào. Họ có thể dễ dàng tạo ra một đối tượng mới, mang nhiều đặc tính của một đối tượng có sẵn. Điều này khiến cho OOP dễ dàng chỉnh sửa. 

Khi sử dụng OOP, một phần mềm sẽ được thiết kế xoay quanh các dữ liệu, hay đối tượng. Một đối tượng có thể được xác định là một trường dữ liệu có những tính chất và hành vi riêng biệt.

Hơn nữa, OOP tập trung vào các đối tượng, thay vì logic mà lập trình viên sẽ sử dụng. Cách tiếp cận này phù hợp với chương trình lớn, phức tạp, được cập nhật chủ động hay duy trì. 

4 tính chất của OOP

Định nghĩa về OOP có lẽ sẽ khiến nhiều người mơ hồ. Để hiểu rõ hơn về OOP, hãy cùng tìm hiểu về tính chất của OOP. OOP có 4 tính chất: đóng gói, trừu tượng, kế thừa và đa hình. Đây cũng là 4 trụ cột của OOP.

Tính đóng gói

Các đối tượng khác nhau của mỗi chương trình sẽ cố gắng tương tác với nhau một cách tự động. Nếu một lập trình viên muốn ngăn cản sự tương tác giữa các đối tượng thì phải đóng gói các đối tượng vào những class riêng biệt. Thông qua đóng gói, các class sẽ không thay đổi và tương tác với những biến hay hàm cụ thể của một đối tượng. 

Bạn hãy nghĩ đến một vỉ thuốc. Trong vỉ thuốc này có các viên thuốc, mỗi viên thuốc lại được đóng gói bằng bao phim. Tương tự như vậy, đóng gói hoạt động theo hướng kỹ thuật số, tạo nên một hàng rào bảo vệ. Hàng rào này ngăn cách đối tượng với những mã code xung quanh. Lập trình viên có thể tạo một bản sao của đối tượng những phần khác của chương trình hay những chương trình khác. 

Tính trừu tượng

Tính trừu tượng giống như một phiên bản mở rộng của tính đóng gói vì nó giấu đi những tính chất và phương thức cụ thể để giao thức của các đối tượng đơn giản hơn. Lập trình viên sử dụng tính trừu tượng cho vài lý do có ích khác. Nhìn chung, tính trừu tượng giúp cô lập ảnh hưởng của sự thay đổi mã code. Mục tiêu là nếu có sai sót gì xảy ra, ảnh hưởng của sự thay đổi là không nhiều.

Một ví dụ đơn giản, thực tế là chiếc điện thoại của bạn. Bạn sử dụng một vài nút nhất định để tương tác với điện thoại của mình. Nhưng cụ thể chiếc điện thoại hoạt động như thế nào thì bạn không biết, vì các chi tiết hoạt động đã bị giấu đi. Khi có sự thay đổi, như hệ điều hành cập nhật, cách bạn sử dụng điện thoại gần như không đổi. 

4 tính chất của OOP
Điện thoại rất phức tạp, nhưng với người dùng, điện thoại lại rất dễ dàng.
(Nguồn: freeCodeCamp)

Tính kế thừa

Tính đóng gói và tính trừu tượng giúp chúng ta phát triển và duy trì một cơ sở mã lớn. Nhưng một vấn đề của OOP là các đối tượng thường rất giống nhau. Chúng có chung logic thực hiện, nhưng không thật sự giống nhau. 

Để tái sử dụng logic chung này và trích những logic cụ thể vào một class riêng, bạn có thể sử dụng tính kế thừa. Có nghĩa là bạn tạo ra một lớp con từ lớp cha. Bằng cách này, chúng ta tạo được một trật tự. Lớp con sẽ sử dụng tất cả các field và method của lớp cha và có thể có thêm những phần riêng biệt của nó.

Tính đa hình

Giả sử chúng ta đã có một lớp cha và một vài lớp con kế thừa. Đôi khi chúng ta muốn sử dụng một tập hợp, ví dụ một danh sách các lớp con này. Hay chúng ta có một method riêng cho class cha, nhưng nếu ta cũng muốn sử dụng method này cho class con?

Tính đa hình đưa ra cách sử dụng một lớp con giống hệt như lớp cha để không có sự nhầm lẫn, bối rối nào giữa các dạng khác nhau. Nhưng mỗi lớp con vẫn giữ nguyên method của mình. Điều này thường xảy ra khi tái sử dụng một giao thức lớp cha. Nó đưa ra những method phổ biến, rồi mỗi lớp con thực hiện phiên bản method riêng của nó. 

Với bài viết trên, hy vọng các bạn đã có được cái nhìn cụ thể hơn về OOP nói chung và 4 tính chất của OOP nói riêng. Chúc bạn thành công trên lĩnh vực lập trình.

Got It Vietnam – Tham khảo: TechTarget, Indeed, freeCodeCamp, Educative

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://vn.got-it.ai/blog/wp-content/uploads/2021/04/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
January 26, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
4 khóa học lập trình hướng đối tượng miễn phí cho người mới

4 khóa học lập trình hướng đối tượng miễn phí cho người mới

Nếu bạn muốn theo nghề IT thì sớm muộn cũng phải học lập trình hướng đối tượng. Đây là một kiến thức cơ bản, bắt buộc phải biết. Bài viết sẽ chia sẻ với bạn 4 khóa học miễn phí, phù hợp với người mới bắt đầu. Mục lục1. Học lập trình hướng đối tượng […]
Phương pháp lập trình hướng đối tượng và các ưu, nhược điểm

Phương pháp lập trình hướng đối tượng và các ưu, nhược điểm

Từ lâu phương pháp lập trình hướng đối tượng đã không còn xa lạ với các lập trình viên. Bài viết sẽ chia sẻ với các bạn một số ưu điểm và nhược điểm của phương pháp này. Mục lục1. Phương pháp lập trình hướng đối tượng là gì?2. Ưu điểm của phương pháp lập […]
4 khái niệm bạn phải biết khi lập trình hướng đối tượng

4 khái niệm bạn phải biết khi lập trình hướng đối tượng

Lập trình hướng đối tượng (Object-oriented programming) là một phương pháp quen thuộc đối với các chuyên gia phát triển phần mềm. Sau đây là 4 khái niệm bạn bắt buộc phải biết để hiểu về lập trình hướng đối tượng. Mục lục1. Class (Lớp)2. Objects (Đối tượng)3. Attributes (Thuộc tính)4. Methods (Phương thức) 1. […]
Bài tập lập trình hướng đối tượng cơ bản, nâng cao

Bài tập lập trình hướng đối tượng cơ bản, nâng cao

Đọc về Object-Oriented Programming (OOP) thôi là chưa đủ, quan trọng là bạn phải thực hành. Làm các bài tập lập trình hướng đối tượng sẽ giúp bạn nắm chắc hơn về OOP. Dưới đây là một số bài tập OOP Got It đã tổng hợp được. Hãy cùng làm để thành thạo lập trình […]
Inversion of control là gì? Tìm hiểu Dependency Inversion

Inversion of control là gì? Tìm hiểu Dependency Inversion

Các khái niệm như Dependency Injection, Dependency Inversion hay Inversion of Control là gì đều là những câu hỏi khó kể cả với những kỹ sư kỳ cựu. Nhiều bạn dù đã đi làm vài năm nhưng vẫn chưa thực sự hiểu rõ về các khái niệm này mà chỉ biết sử dụng chúng trong […]
7 câu hỏi thường gặp tring phỏng ván lập trình hướng đối tượng

7 câu hỏi thường gặp tring phỏng ván lập trình hướng đối tượng

Với nền kinh tế hiện đại ngày nay, lập trình viên đang là một nghề được nhiều doanh nghiệp săn đón. Bộ câu hỏi phỏng vấn lập trình hướng đối tượng được chia sẻ sau đây sẽ hỗ trợ bạn nắm bắt cơ hội nghề nghiệp. Cùng tìm hiểu nhé. Mục lụcLập trình hướng đối […]