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.

Share:

0 Nhận xét

Categories

. . . 1 [English | DVD] Trọn Bộ DVD Effortless English 3 Ajax 1 Andengine 3 Android 41 Android Studio Cài đặt và phím tắt thông dụng 1 API 1 App Android 1 Applicaiton Chat Multi Client 1 ASP.NET 9 Bài tập lập trình C/C++ có lời giải 1 Bài tập thuật toán C/C++ Và Tuyển tập đề thi olympic 2 Bắt đầu Học Lập Trình 4 Blogger 2 C/C++ 16 C# 21 Câu hỏi phỏng vấn Android 1 Cocos2d-JS 3 Cocos2d-x 3 Code game android 3 Công Cụ Lập Trình 13 Công nghệ 3 Cosos2d 1 CSS 1 Cuộc sống 15 Custom Button trong Android 2 Design Patterns 3 DevExpress 1 Đồ Án 1 DOREMON - NOBITA 2 Dự án 1 Ebook Android 1 English 8 Example Custom Android 1 facebook 1 Fedora 2 Freelancer 1 Game Android 4 Game Android AndEngine 1 Giới thiệu về Ajax 1 Hiệu ứng lắc trong android 1 Hướng dẫn cài đặt Mac OS trên VMware 1 Hướng dẫn download tài liệu miễn phí của website tailieu.vn 1 Hướng dẫn lập trình android 11 Hướng dẫn lập trình Windows Phone 3 Hướng đối tượng 2 Internet được khôi phục 1 Internet of Things 1 iOS 33 Java 9 Kiểm thử phần mềm 1 Kinh nghiệm lập trình 17 Kỹ Năng 1 Lập trình Android FPT Software Training 1 Lập Trình Game Đa Nền Tảng 2 Lập trình game mobile 2 Lập trình iOS FPT Software Training 1 Lập trình mạng 2 LẬP TRÌNH VIÊN CHUYÊN NGHIỆP TRÊN THIẾT BỊ DI ĐỘNG 2 Laptop 1 Libgdx 1 LinQ 3 Linux 6 Load CSDL SQL server ASP.NET 1 Lỗi Eclipse Ctr + Space 1 Mạng Xã Hôi 1 máy thật PC 1 Mbook TIN HỌC A 1 Mbook TIN HỌC B 1 mỗi bài 20 câu 1 NGAN-HANG-DE-THI-TRAC-NGHIEM-ASP.NET 1 Nguyên tắc ngón tay cái trong thiết kế ứng dụng cho điện thoại 1 Nhập môn lập trình C 14 Những câu hỏi phỏng vấn "xương" nhất 1 Những điểm mới kỳ thi THPT quốc gia 2015 1 Object C 1 Phần mềm 3 PHP 2 Phương pháp luyện thi TOEIC 1 Python 2 Review Game 1 SEO 4 Share Acc Fshare 1 Share VIP Miễn phí 1 Sinh viên mới tốt nghiệp – viết gì trong CV 1 Socket Android Client to PC Server C# 2 Socket Chat nhiều Client với server C# 2 Source code 4 Source code game C# 1 Source code game iOS 2 T3H-KHTN 7 Tài Liệu Android 7 Tài Liệu C# 4 Tài liệu hướng dẫn lập trình game với cocos2d-x 1 Tài Liệu iOS 7 Tài Liệu IT 3 Tài Liệu Java 2 Tài liệu Lập trình iOS Tiếng Việt đầy đủ TTTH đại học khoa học tự nhiên 1 Tài Liệu PHP 1 TÀI LIỆU THIẾT KẾ SỐ 1 Tài Liệu Windows Phone 1 Tạo Group Mail Google 1 Tạo hiệu ứng trong lập trình iOS 1 Tạo tên CoCaCoLa 1 Thắc mắc C/C++ 3 THẬP PHÂN sang NHỊ PHÂN không sử dụng MẢNG 1 Thiết kế giao diện Android - App Calculation Android Studio 1 Thiết kế giao diện phần mềm 1 Thuật ngữ cơ bản trong lập trình game AndEngine 1 Thuật toán 5 Thuật toán điều phối FCFS 1 Tiếng Anh 2 Tin Tức 1 Toàn bộ tài liệu ĐTVT 5 năm học 1 Tổng hợp những nơi người lái xe hay bị mắc lỗi tại TPHCM 1 Tutorials Android 2 Tuyến cáp quang AAG đã sửa xong 1 Unity 1 Vim 1 Visual Studyo 2013 1 WEB 1 Website nén JS và CSS tốt nhất 1 Websites Developer 2 Windows 10 Technical Preview 1 Windows Phone 5 WPF 1 XAMARIN 1 Xóa project appcompat_v 1