Skip to main content

Tư duy lập trình hướng đối tượng

Nghành công nghiệp phần mềm đã chuyển sang một kỷ nguyên mới. Ngày nay, các phần mềm không được phát triển nhỏ lẻ mà thường là những hệ thống lớn, tập trung, phức tạp. Đó là sự kết hợp của nhiều thành phần dưới dạng thư viện, gói, dịch vụ,…được phát triển trên những nền tảng chuyên biệt, đảm nhận những chức năng và nhiệm vụ khác nhau. Do đó những mô hình lập trình cũ trở lên bất cập, thiếu linh động, phức tạp,…

Lập trình hướng đối tượng ra đời như một bước tiến hóa của tư duy thiết kế phần mềm. Mô hình đó cho phép chúng ta kết hợp tri thức bao quát về quá trình với những khái niệm trừu tượng được sử dụng trong máy tính. Phỏng theo một đối tượng trong thế giới thực, các đối tượng trong phần mềm được tạo xác định chính xác những đặc trưng, thành phần, hành vi, khả năng, mối quan hệ dữ liệu,…Chúng ta có thể tạo ra một hoặc nhiều đối tượng từ một khuôn hình cài đặt sẵn với dữ liệu mới, độc lập.

Ngôn ngữ lập trình hướng đối tượng không chỉ đơn thuần là ngữ pháp ngôn ngữ, trình biên dịch hay toàn bộ môi trường phát triển ứng dụng mà nó bao gồm rất nhiều những thư viện quan trọng trợ giúp việc thiết kế, sử dụng đối tượng tốt hơn. Lập trình hướng đối tượng có thể được hỗ trợ bởi bất cứ ngôn ngữ lập trình nào. Hiện nay hầu hết các ngôn ngữ thông dụng đều hỗ trợ lập trình hướng đối tượng.


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

+ Tập trung vào dữ liệu thay cho các hàm.
+ Chương trình được chia thành các đối tượng độc lập.
+ Cấu trúc dữ liệu được thiết kế sao cho đặc tả được các đối tượng.
+ Dữ liệu được che giấu, bao bọc.
+ Các đối tượng trao đổi với nhau thông qua các hàm.
+ Chương trình được thiết kế theo hướng tiếp cận từ dưới lên.

* Trừu tượng hóa dữ liệu

Khi bắt đầu phát triển phần mềm, lập trình viên sẽ không đi vào viết lệnh ngay lập tức. Công việc đầu tiên cần nghiên dự án, phân tích các đặc tả phần mềm, các thành phần cần có. Theo đó, lập trình viên sẽ phải xác định những thông tin, dữ liệu cần thiết cho từng thành phần. Như vậy, trừu tượng hóa dữ liệu là quá trình xác định, tập hợp những thuộc tính, hành xử cho một thực thể cụ thể liên quan trong ứng dụng. Trong quá trình đó, có thể có những chi tiết sẽ được cài đặt nhưng ngược lại sẽ có những chi tiết cần loại bỏ vì chúng không nằm trong yêu cầu.

Những ưu điểm của việc trừu tượng hóa dữ liệu bao gồm:
Tập trung vào vấn đề.
Xác định rõ những thành phần và chức năng cần thiết.
Loại trừ những chi tiết không cần thiết.

1. Đa hình

Đa hình là khả năng cho phép một hoạt động có những hành xử khác nhau trong cùng một đối tượng. Khái niệm này ám chỉ việc đối tượng có nhiều phương thức cùng tên nhưng lại thực hiện những nhiệm vụ khác nhau. Trình biên dịch và hệ thống thực thi sẽ so khớp mỗi lời gọi phương thức, đối tượng. Khả năng tìm kiếm đúng để sử dụng trong những tình huống phức tạp là bản chất của tính đa hình. Đa hình là một trong những đặc trưng quan trọng của hệ thống hướng đối tượng.

2. Kế thừa

Kế thừa là khả năng cho phép một lớp chia sẻ thuộc tính, hành xử được cài đặt trong nó. Nguyên lý kế thừa hỗ trợ việc tạo ra cấu trúc phân cấp các lớp. Nó được hiểu như một cơ chế sao chép ảo không đơn điệu và có chắt lọc. Một lớp có thể thừa kế từ một hay nhiều lớp khác. Theo đó lớp được thừa kế là lớp cha (Superclass) và lớp thừa kế là lớp con (Subclass).

3. Đóng gói dữ liệu

Đóng gói dữ liệu là quá trình che dấu những cài đặt cụ thể của một đối tượng với một đối tượng sử dụng khác. Dữ liệu được tổ chức có thể phơi bày với thế giới bên ngoài hoặc che giấu vào bên trong đối tượng. Những thuộc tính, hành xử được phơi bày có thể được truy cập, triệu gọi từ một đối tượng khác. Ngược lại, những thuộc tính, hành xử được che giấu chỉ đảm nhận hành xử hay lưu trữ dữ liệu cho chính đối tượng đó, chúng không có khả năng truy cập từ ngoài vào.

**Những ưu điểm của lập trình hướng đối tượng.

Loại bỏ được những dư thừa, trùng lặp trong việc xây dựng ứng dụng.
Cài đặt đối tượng giúp xúc tiến việc sử dụng lại, trao đổi giữa các đối tượng với nhau do đó sẽ giảm kích thước, thời gian xử lý,… thời gian phát triển hệ thống, tăng năng xuất lao động.
Dễ bảo trì, nâng cấp, giảm lỗi.

Lập trình hướng đối tượng .
1. Class : Các chức năng, thành phần của một thực thể được định nghĩa một cách chung nhất trong một mẫu cụ thể được gọi là class

2. Object: Là một đối tượng cụ thể của class.

3. Attribute : là những thành phần được định nghĩa trong một class.

4. Operation: Giống như một dịch vụ được triệu gọi bởi một đối tượng (Object).

5. Method: còn gọi là phương thức định nghĩa cụ thể một operation.

6. Message: Là những đòi hỏi , những thông tin cần có cho một operation.

7. Event: Là những kích hoạt để thực thi một hay nhiều operation.

** So sánh class và Object : Object là một cài đặt cụ thể của một class. Class giống như một khuôn để sản sinh ra các object khác nhau. Có thể có nhiều Object có những thuộc tính khác nhau được sinh ra từ một class.

8. Construction : Là triệu gọi đầu tiên khi một object được tạo. Constructor là một method đặc biệt được gọi đầu tiên trước khi một method hay attribute có thể được sử dụng trong một object của một class. Contructor có thể khởi khán những attribute, cấp phát bộ nhớ nếu cần thiết.

9. Destruction: Là phương thức đặt biệt được gọi để hủy, giết một object. Destruction sẽ xóa object, giải phóng bộ nhớ mà constructor cấp phát. Theo đó mọi khả năng sử dụng truy cập tới object này sẽ không còn.
Nguồn: sưu tầm + tổng hợp.

Comments

Popular posts from this blog

Socket Android Client to PC Server C#

Using AsynCallback C# Android Client connect Server C# Source code:  http://ow.ly/OlXj309O1mj c# socket multi client, socket c# example, socket server c#, socket c# tutorial, asynchronous socket in c#, c# socket multiple clients, c# socket server multiple clients, Download source code:  Click Here

Bài tập thuật toán C/C++ Và Tuyển tập đề thi olympic

Gồm: +  Các thuật toán của Lê Minh Hoàng + Tuyển tập các đề thi olympic tin học sinh viên Link down: Tại đây

Cross Platform Mobile App: Demo shop with flutter

Cross Platform Mobile App: Demo shop with flutter So cool framework from google <3  Demo:  Demo Code console.print("hello")