BÀI 2: TÌM HIỂU VỀ HƯỚNG ĐỐI TƯỢNG (OBJECT-ORIENTATION)
Số trang: 8
Loại file: pdf
Dung lượng: 959.16 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Nội dung chính trong bài học: + Sự trừu tượng hóa (abstraction) + Sự thừa kế (inheritance) + Tính đa hình (polymorphism) + Tính đóng gói (encapsulation) + Việc truyền thông điệp (message sending) + Mối kết hợp (association) + Sự tập hợp (aggregation) Hướng đối tượng đem lại những đổi thay rất lớn cho thế giới phần mềm. Nó được xem là một cách thức mới để tạo chương trình và có rất nhiều ưu điểm. Nó hướng theo cách tiếp cận dựa trên thành phần (component-based approach) để phát triển phần mềm sao cho một hệ thống chính...
Nội dung trích xuất từ tài liệu:
BÀI 2: TÌM HIỂU VỀ HƯỚNG ĐỐI TƯỢNG (OBJECT-ORIENTATION) BÀI 2: TÌM HIỂU VỀ HƯỚNG ĐỐI TƯỢNG (OBJECT-ORIENTATION) Nội dung chính trong bài học: + Sự trừu tượng hóa (abstraction) + Sự thừa kế (inheritance) + Tính đa hình (polymorphism) + Tính đóng gói (encapsulation) + Việc truyền thông điệp (message sending) + Mối kết hợp (association) + Sự tập hợp (aggregation) Hướng đối tượng đem lại những đổi thay rất lớn cho thế giới phần mềm. Nó được xem là một cách thức mới để tạo chương trình và có rất nhiều ưu điểm. Nó hướng theo cách tiếp cận dựa trên thành phần (component-based approach) để phát triển phần mềm sao cho một hệ thống chính là một tập các đối tượng (object). Sau đó, ta có thể mở rộng hệ thống bằng cách tăng cường khả năng cho các thành phần sẵn có hoặc thêm các thành phần mới. cuối cùng, ta có thể tái sử dụng các object đã tạo cho hệ thống trước đó khi xây dựng một hệ thống mới, làm cắt giảm đáng kể thời gian phát triển hệ thống. Hướng đối tượng rất quan trọng đối với ngành công nghệ phần mềm và OMG (Object Management Group) là một tổ chức đã thiết lập các chuẩn cho việc phát triển hướng đối tượng. UML cho phép ta xây dựng các mô hình dễ dùng, dễ hiểu của các đối tượng sao cho các lập trình viên có thể tạo ra chúng trong phần mềm. Hướng đối tượng chỉ là một tập ý tưởng dựa trên một số nguyên lý cơ sở. Trong bài này, chúng ta sẽ tìm hiểu các nguyên lý đó. Đối tượng (object) có mọi nơi Đối tượng có tính cụ thể, nói cách khác chúng tồn tại xung quanh ta, chúng tạo nên thế giới. Như đã đề cập trong bài trước, phần mềm ngày nay có xu hướng mô phỏng thế giới hoặc một phần nhỏ của thê 1giới, do vậy các chương trình thường “bắt trước” các object trong thế giới thực. Thuật ngữ: Đối tượng (object) là một thể hiện (instance) của một lớp (class). Mỗi người chúng ta là một thể hiện của lớp con người (person class). Một object có cấu trúc (structure). Nghĩa là nó có các thuộc tính (attribute, property) và hành vi (behavior). Một hành vi của object bao gồm các hành động (operation) mà nó thực hiện. Thuộc tính và hành vi kết hợp thành đặc trưng (feature) của object. Vì là các object trong lớp person nên mỗi người chúng ta có các thuộc tính như: chiều cao, cân nặng, tuổi, … Chúng ta cũng thực hiện một số hành động như: ăn, ngủ, đọc, viết, nói, đi Trang 1 – Bài 2 làm, … Nếu chúng ta cần tạo một hệ thống xử lý các thông tin về con người, chẳng hạn như hệ thống quản lý lương hay hệ thống quản lý nhân sự, chúng ta cần kết hợp chặt chẽ các thuộc tính và hành động này trong phần mềm của chúng ta. Trong thế giới hướng đối tượng, một class là một mẫu (template) để sinh các object. Trở lại với ví dụ về máy giặt (washing machine). Nếu lớp washing machine được mô tả bởi các thuộc tính như brand name, model name, serial number và capacity cùng với các hành vi như add clothes, add detergent và remove clothes. Với các thuộc tính và hành vi trên, ta có được cơ chế để sản xuất ra các thể hiện (instance) mới của lớp washing machine, có nghĩa là ta có thể tạo các object mới. Xem hình 2.1 Hình 2.1 Lớp washing machine – mô hình gốc của một máy giặt – là một mẫu (template) cho việc tạo ra các thể hiện mới của các máy giặt. Chú ý rằng mục tiêu của hướng đối tượng là phát triển phần mềm có khả năng phản ánh một phần cụ thể của thế giới thực. Càng nhiều thuộc tính (attribute) và hành vi (behavior) thu thập được thì mô hình sẽ càng có tính thực tiễn. Trong ví dụ trước, có thể bổ sung thêm các thuộc tính như drum volume, internal timer, trap, motor và motor speed. Các hành vi có thể bổ sung gồm add bleach, time the soak, time the wash, time the rise và time the spin. Xem hình 2.2 Hình 2.2 Thêm các thuộc tính và hành vi giúp cho mô hình gần với thực tế hơn. Trang 2 – Bài 2 Các khái niệm Sự trừu tượng hóa (abstraction): Thuật ngữ: sự trừu tượng hóa là sự đơn giản hóa, lược bỏ đi các tính chất, hành động của một thực thể để chỉ còn lại những gì cần thiết. Các loại vấn đề khác nhau đòi hỏi mức độ thông tin khác nhau. Hình 2.2 xây dựng một mô hình washing machine với nhiều thuộc tính và hành vi hơn so với Hình 2.1. Làm như thế có cần thiết không? Nếu ta là thành viên trong một nhóm với nhiệm vụ tạo một chương trình máy tính mô phỏng chính xác cách thức một máy giặt hoạt động thì việc bổ sung thuộc tính, hành vi như đã nói là rất cần thiết. Một chương trình máy tính như thế (dùng cho kỹ sư thiết kế máy giặt) phải có đủ thông tin để dự tính chính xác về những sẽ diễn ra khi máy giặt được tạo ra, khi nó vận hành thực tế. Đối với các loại chương trình như thế, có thể loại bỏ những thuộc tính không thực sự hữu dụng như thuộc tính serial number. Với ví dụ khác, nếu chúng ta tạo một phần mềm theo dõi các giao dịch trong một cửa hàng giặt ủi có nhiều máy giặt thì việc bổ sung thuộc tính, hành vi như đã nói là không cần thiết. Chúng ta có thể giữ lại thuộc tính serial number cho mỗi đối tượng máy giặt. Sự thừa kế (inheritance): Thuật ngữ: Một class là một lớp các object (trong phần mềm, nó là một mẫu cho việc tạo object mới). Ngược lại, một object là một thể hiện (instance) của một class và nó có tất cả các đặc tính mà class có. Điều này gọi là sự thừa kế (inheritance). Bất cứ thuộc tính và hành vi nào ta quyết định cho lớp washing machine, mỗi object thuộc lớp cũng sẽ thừa kế các thuộc tính và hành vi đó. Không phải chỉ có object thừa kế từ class mà một class cũng có thể thừa kế từ một class khác. Ví dụ washing machines, refrigerators, microwave ovens, toasters, dishwashers, radios, waffle makers, blenders và irons đều là các class, nhưng chúng là thành viên của một class chung hơn: appliances (đồ điện gia dụng). Một appliance có các thuộc tính như công tắc on-off, dây điện và các hành vi tắt , mở. Thuật ngữ: Nói cách khác các lớp washing machines, refrigerators, microwave ovens, … là các lớp con (subclass) của lớp appliance. Lớp appliance gọi là lớp cha (super class) ...
Nội dung trích xuất từ tài liệu:
BÀI 2: TÌM HIỂU VỀ HƯỚNG ĐỐI TƯỢNG (OBJECT-ORIENTATION) BÀI 2: TÌM HIỂU VỀ HƯỚNG ĐỐI TƯỢNG (OBJECT-ORIENTATION) Nội dung chính trong bài học: + Sự trừu tượng hóa (abstraction) + Sự thừa kế (inheritance) + Tính đa hình (polymorphism) + Tính đóng gói (encapsulation) + Việc truyền thông điệp (message sending) + Mối kết hợp (association) + Sự tập hợp (aggregation) Hướng đối tượng đem lại những đổi thay rất lớn cho thế giới phần mềm. Nó được xem là một cách thức mới để tạo chương trình và có rất nhiều ưu điểm. Nó hướng theo cách tiếp cận dựa trên thành phần (component-based approach) để phát triển phần mềm sao cho một hệ thống chính là một tập các đối tượng (object). Sau đó, ta có thể mở rộng hệ thống bằng cách tăng cường khả năng cho các thành phần sẵn có hoặc thêm các thành phần mới. cuối cùng, ta có thể tái sử dụng các object đã tạo cho hệ thống trước đó khi xây dựng một hệ thống mới, làm cắt giảm đáng kể thời gian phát triển hệ thống. Hướng đối tượng rất quan trọng đối với ngành công nghệ phần mềm và OMG (Object Management Group) là một tổ chức đã thiết lập các chuẩn cho việc phát triển hướng đối tượng. UML cho phép ta xây dựng các mô hình dễ dùng, dễ hiểu của các đối tượng sao cho các lập trình viên có thể tạo ra chúng trong phần mềm. Hướng đối tượng chỉ là một tập ý tưởng dựa trên một số nguyên lý cơ sở. Trong bài này, chúng ta sẽ tìm hiểu các nguyên lý đó. Đối tượng (object) có mọi nơi Đối tượng có tính cụ thể, nói cách khác chúng tồn tại xung quanh ta, chúng tạo nên thế giới. Như đã đề cập trong bài trước, phần mềm ngày nay có xu hướng mô phỏng thế giới hoặc một phần nhỏ của thê 1giới, do vậy các chương trình thường “bắt trước” các object trong thế giới thực. Thuật ngữ: Đối tượng (object) là một thể hiện (instance) của một lớp (class). Mỗi người chúng ta là một thể hiện của lớp con người (person class). Một object có cấu trúc (structure). Nghĩa là nó có các thuộc tính (attribute, property) và hành vi (behavior). Một hành vi của object bao gồm các hành động (operation) mà nó thực hiện. Thuộc tính và hành vi kết hợp thành đặc trưng (feature) của object. Vì là các object trong lớp person nên mỗi người chúng ta có các thuộc tính như: chiều cao, cân nặng, tuổi, … Chúng ta cũng thực hiện một số hành động như: ăn, ngủ, đọc, viết, nói, đi Trang 1 – Bài 2 làm, … Nếu chúng ta cần tạo một hệ thống xử lý các thông tin về con người, chẳng hạn như hệ thống quản lý lương hay hệ thống quản lý nhân sự, chúng ta cần kết hợp chặt chẽ các thuộc tính và hành động này trong phần mềm của chúng ta. Trong thế giới hướng đối tượng, một class là một mẫu (template) để sinh các object. Trở lại với ví dụ về máy giặt (washing machine). Nếu lớp washing machine được mô tả bởi các thuộc tính như brand name, model name, serial number và capacity cùng với các hành vi như add clothes, add detergent và remove clothes. Với các thuộc tính và hành vi trên, ta có được cơ chế để sản xuất ra các thể hiện (instance) mới của lớp washing machine, có nghĩa là ta có thể tạo các object mới. Xem hình 2.1 Hình 2.1 Lớp washing machine – mô hình gốc của một máy giặt – là một mẫu (template) cho việc tạo ra các thể hiện mới của các máy giặt. Chú ý rằng mục tiêu của hướng đối tượng là phát triển phần mềm có khả năng phản ánh một phần cụ thể của thế giới thực. Càng nhiều thuộc tính (attribute) và hành vi (behavior) thu thập được thì mô hình sẽ càng có tính thực tiễn. Trong ví dụ trước, có thể bổ sung thêm các thuộc tính như drum volume, internal timer, trap, motor và motor speed. Các hành vi có thể bổ sung gồm add bleach, time the soak, time the wash, time the rise và time the spin. Xem hình 2.2 Hình 2.2 Thêm các thuộc tính và hành vi giúp cho mô hình gần với thực tế hơn. Trang 2 – Bài 2 Các khái niệm Sự trừu tượng hóa (abstraction): Thuật ngữ: sự trừu tượng hóa là sự đơn giản hóa, lược bỏ đi các tính chất, hành động của một thực thể để chỉ còn lại những gì cần thiết. Các loại vấn đề khác nhau đòi hỏi mức độ thông tin khác nhau. Hình 2.2 xây dựng một mô hình washing machine với nhiều thuộc tính và hành vi hơn so với Hình 2.1. Làm như thế có cần thiết không? Nếu ta là thành viên trong một nhóm với nhiệm vụ tạo một chương trình máy tính mô phỏng chính xác cách thức một máy giặt hoạt động thì việc bổ sung thuộc tính, hành vi như đã nói là rất cần thiết. Một chương trình máy tính như thế (dùng cho kỹ sư thiết kế máy giặt) phải có đủ thông tin để dự tính chính xác về những sẽ diễn ra khi máy giặt được tạo ra, khi nó vận hành thực tế. Đối với các loại chương trình như thế, có thể loại bỏ những thuộc tính không thực sự hữu dụng như thuộc tính serial number. Với ví dụ khác, nếu chúng ta tạo một phần mềm theo dõi các giao dịch trong một cửa hàng giặt ủi có nhiều máy giặt thì việc bổ sung thuộc tính, hành vi như đã nói là không cần thiết. Chúng ta có thể giữ lại thuộc tính serial number cho mỗi đối tượng máy giặt. Sự thừa kế (inheritance): Thuật ngữ: Một class là một lớp các object (trong phần mềm, nó là một mẫu cho việc tạo object mới). Ngược lại, một object là một thể hiện (instance) của một class và nó có tất cả các đặc tính mà class có. Điều này gọi là sự thừa kế (inheritance). Bất cứ thuộc tính và hành vi nào ta quyết định cho lớp washing machine, mỗi object thuộc lớp cũng sẽ thừa kế các thuộc tính và hành vi đó. Không phải chỉ có object thừa kế từ class mà một class cũng có thể thừa kế từ một class khác. Ví dụ washing machines, refrigerators, microwave ovens, toasters, dishwashers, radios, waffle makers, blenders và irons đều là các class, nhưng chúng là thành viên của một class chung hơn: appliances (đồ điện gia dụng). Một appliance có các thuộc tính như công tắc on-off, dây điện và các hành vi tắt , mở. Thuật ngữ: Nói cách khác các lớp washing machines, refrigerators, microwave ovens, … là các lớp con (subclass) của lớp appliance. Lớp appliance gọi là lớp cha (super class) ...
Tìm kiếm theo từ khóa liên quan:
Công nghệ thông tin kỹ thuật lập trình tin học văn phòng internet computer networkGợi ý tài liệu liên quan:
-
52 trang 430 1 0
-
73 trang 427 2 0
-
Nhập môn Tin học căn bản: Phần 1
106 trang 329 0 0 -
Giáo trình Tin học văn phòng: Phần 2 - Bùi Thế Tâm
65 trang 315 0 0 -
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 314 0 0 -
74 trang 296 0 0
-
96 trang 292 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 289 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 280 0 0 -
Giáo trình Tin học MOS 1: Phần 1
58 trang 276 0 0