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é. 

1. 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ì. 

2. Bốn 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.

2.1. 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. 

2.2. 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. 

2.3. 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ó.

2.4. 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://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/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. Tìm hiểu thêm: Bài tập ôn luyện Lập […]
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. Tìm hiểu thêm: Bài tập ôn luyện Lập trình hướng đối tượng từ cơ bản đến nâng […]
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

Để nâng cao kỹ năng Lập trình hướng đối tượng – Object-Oriented Programming (OOP), bạn cần liên tục rèn luyện, thực hành. Trong bài viết hôm nay, Got It sẽ chia sẻ tới bạn các bài tập lập trình hướng đối tượng. Các bài tập này sẽ giúp bạn ôn lập trình hướng đối tượng […]
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 […]
Bộ 7 câu hỏi phỏng vấn lập trình hướng đối tượng

Bộ 7 câu hỏi 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 Got It tìm hiểu nhé. Mục lục1. Lập […]