Hotline

Giải mã 4 tính chất của lập trình hướng đối tượng

Chắc hẳn lập trình hướng đối tượng đã trở nên khá quen thuộc và hầu hết các bạn học lập trình nào cũng phải học. Tuy nhiên, nhiều bạn vẫn khá là mơ hồ về 4 tính chất của lập trình hướng đối tượng. Hy vọng bài viết này đem lại nhiều thông tin hữu ích cho bạn!

Giải mã 4 tính chất của lập trình hướng đối tượng

1. Tính kế thừa (inheritance)

Tính chất kế thừa là tính chất quan trọng nhất cho phép một đối tượng có thể có được các đặc tính (thuộc tính, phương thức) mà đối tượng khác đã có thông qua kế thừa(extends). Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lạị.

>>> Lập trình hướng đối tượng là gì? Ưu điểm tuyệt vời của lập trình hướng đối tượng

Giải mã 4 tính chất của lập trình hướng đối tượng 1

2. Tính đa hình  (Polymorphism)

Tính chất đa hình của lập trình hướng đối tượng được thể hiện rõ nhất qua việc gọi phương thức của đối tượng. Các phương thức hoàn toàn có thể giống nhau, nhưng việc xử lý luồn có thể khác nhau.

Ví dụ: ta có 3 lớp Hình, Hình vuông, Hình tròn. Trong đó lớp hình là lớp cha của 2 lớp còn lại có phương thức là tính diện tích.

Theo ví dụ trên chúng ta có thể nhận thấy cùng là một phương thức tính diện tích, cùng trả về diện tích của hình nhưng luồng xử lý tì hoàn toàn khác nhau, đó là tính đa hình hóa trong hướng đối tượng.

Giải mã 4 tính chất của lập trình hướng đối tượng 2

3. Tính đóng gói (encapsulation) và che giấu thông tin (info hiding)

Tính chất đóng gói này không cho phép người sử dụng các đối tượng thay đổi trạng thái nội tại của một đối tượng. Chỉ có các phương thức nội tại của đối tượng cho phép thay đổi trạng thái của nó. Việc cho phép môi trường bên ngoài tác động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy thuộc vào người viết mã. Đây là tính chất đảm bảo sự toàn vẹn, bảo mật của đối tượng mà bạn có thể tìm hiểu kỹ hơn trong các khóa học lập trình

Giải mã 4 tính chất của lập trình hướng đối tượng 4

4. Tính trừu tượng (abstraction)

Cuối cùng tính chất trừu tượng của lập trình hướng đối tượng là khả năng của chương trình bỏ qua hay không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếp làm việc lên, nghĩa là nó có khả năng tập trung vào cốt lỗi cần thiết. Mỗi đối tượng phục vụ như là một "động tử" có thể hoàn tất các công việc một cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối tượng khác mà không cần cho biết làm cách nào đối tượng tiến hành được thao tác. Tính chất này thường được gọi là sự trừu tượng của dữ liệu.

Tính trừu tượng còn thể hiện qua việc một đối tượng ban đầu có thể có một số điểm chung cho nhiều đối tượng khác như là sự mở rộng của nó nhưng bản thân đối tượng ban đầu này có thể không có các biện pháp thi hành. Tính trừu tượng này thường được xác định trong khái niệm gọi là lớp trừu tượng hay lớp cư sở trừu tượng.

>>> Xem thêm: Lập trình hướng đối tượng c++ cho người mới bắt đầu

Đối tượng là một thể hiện của một lớp

Ví dụ: Lớp xe hơi có các đối tượng là: Xe lambogini, ferari, meccedess, toyota...

1 đối tượng sẽ chứa 2 thông tin đi kèm theo:

1. Dữ liệu nó đang chứa.

2. Hành động nó làm.

Đó chính là đối tượng là một thể hiện của một lớp

Thông thường, để dễ nhớ người ta thường chia 4 tính chất của lập trình định hướng đối tượng làm 2 nhóm:

  • Nhóm 1: tính chất 1. Tính đóng gói là tính dễ nhận thấy nhất nếu bạn bắt đầu học OOP sau khi đã học qua những ngôn ngữ thủ tục như C và Pascal (thường trường phổ thông ở Việt Nam đều dạy).
  • Nhóm 2: tính chất 2, 3, và 4 đi một dây với nhau.

Giải mã 4 tính chất của lập trình hướng đối tượng

5. Tầm vực trong lập trình hướng đối tượng

  • Public: Các thuộc tính hoặc các phương thức có thể truy xuất ra bên ngoài class.
  • Private: các thuộc tính các phương thức không thể truy xuất ra bên ngoài class, nó chỉ được gọi trong phạm vi class.
  • Protected: các thuộc tính các phương thức không thể truy xuất ra bên ngoài class, nó chỉ được gọi trong class và class kế thừa.

Trên đây là 4 tính chất của lập trình hướng đối tượng đặc trưng mà MindX nghĩ bạn nhất định phải nắm được. Đây là kiến thức căn bản và là nền tảng để bạn nghiên cứu, tìm hiểu sâu hơn nữa về lập trình hướng đối tượng sau này