Bài giảng lập trình hướng đối tượng chương 1 lập trình hướng đối tượng

15 258 0
Bài giảng lập trình hướng đối tượng   chương 1  lập trình hướng đối tượng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nội dung • Lập trình thơng thường Chương LẬP TRÌNH HƯỚNG ðỐI TƯỢNG • Lập trình hướng đối tượng • Unified Modeling Language - UML 9/30/2009 Lập trình thơng thường Lập trình thơng thường (tt tt)) • Lập trình tuyến tính • Lập trình cấu trúc – Tư theo lối tuần tự, ñơn giản – ðơn luồng cơng việc thực luồng – Tồn modul nhỏ phương pháp lập trình khác Cấu trúc dữ liliệ ệu + Gi Giả ải thuậ thuật = Ch Chươ ương ng trình – Cấu trúc liệu: cách tổ chức liệu, mơ tả tốn dạng ngơn ngữ lập trình – Giải thuật: quy trình để thực cơng việc xác định – Khơng giải ñược yêu cầu phức tạp Lập trình thơng thường (tt) tt) Lập trình hướng đối tượng • Lập trình cấu trúc (tt) • Một số khái niệm • Lập trình hướng đối tượng Object Oriented Programming – OOP • Các đặc điểm OOP – Phân chia chương trình thành chương trình cho phù hợp với yêu cầu, chức mục đích tốn – Giải thuật ln phụ thuộc chặt chẽ vào cấu trúc liệu Một số khái niệm Một số khái niệm (tt tt)) • ðối tượng (Object) • ðối tượng giới thực – Trong giới thực: • đối tượng th c th (entity) cụ thể mà thơng thường ta sờ, nhìn thấy hay cảm nhận – Trong lập trình: • Dùng để mơ tả người, vật hay khái niệm • ðối tượng mà ứng dụng muốn ñề cập ñến • Trong hệ thống hướng ñối tượng, thứ ñều ñối tượng xe Trạng thái: • màu • hãng sản xuất • model • giá •… Hành động: • Dừng • Chạy • Tăng tốc •Thắng •… Một số khái niệm (tt) tt) Một số khái niệm (tt tt)) • ðối tượng giới thực (tt) • ðối tượng lập trình – Mọi đối tượng có trạng thái (state) hành động (behavior) – Thuộc tính, đặc tính, liệu (attribute, property, data): • Trình bày, mơ tả đặc điểm đối tượng – Phương thức, ứng xử, hàm (method, behavior, function): • Liên quan ñến thứ ñối tượng làm • Tác ñộng lên liệu ñối tượng 10 11 12 Một số khái niệm (tt) tt) Thuộc tính: •tiêu đề •nội dung •kích thước •màu… Phương thức: •vẽ •di chuyển •đổi kích thước •đóng, … Một số khái niệm (tt) tt) Một số khái niệm (tt tt)) • Thể (instance) Thuộc tính: •Màu •Màu thân •Chiều cao •Tọa độ – Thuộc tính xác ñịnh giá trị cụ thể – ðối tượng cụ thể gọi thể Phương thức: •vẽ 13 ðối tượng (object) thực thể phần mềm bao bọc thuộc tính phương thức liên quan ðối tượng Xe ñạp (là thể hiện)) Một số khái niệm (tt) tt) Một số khái niệm (tt tt)) • Lớp (class) • Lớp (class) 14 – Lớp tạo ñối tượng: cách gán giá trị cụ thể cho thuộc tính – Là mẫu (prototype) ñối tượng kiểu – Là khn để đổ đối tượng – ðịnh nghĩa thuộc tính phương thức chung cho đối tượng có loại • Lớp tạo biên dịch • ðối tượng tạo thực thi chương trình VD: Lớp XeDap thiết kế chung cho đối tượng xe mini, xe địn, xe đầm, xe ñua, xe leo núi, … ðối tượng thể (instance) lớp 15 16 Một số khái niệm (tt) NhanVien • Truyền thơng báo Mã nhân viên – Họ tên – Năm sinh – Nghề nghiệp – ðịa – Hệ số lương – Chức vụ – Làm việc () + Nghỉ phép () + Lãnh lương () + – Thông báo (message): lời u cầu hoạt động – Thơng báo bao gồm: • ðối tượng nhận thơng điệp • Hoạt động (tên phương thức thực hiện) • Chi tiết thực (giá trị tham số) Ông NVA Bà TTB Ơng LVC – Truyền thơng báo: kích hoạt hàm tên ñối tượng ñể yêu cầu thơng tin 17 18 Lập trình hướng đối tượng NhanVien NhanVien Mã nhân viên – Họ tên – Năm sinh – Nghề nghiệp – ðịa – Hệ số lương – Chức vụ Làm việc () + Nghỉ phép () + Lãnh lương () + • Một số khái niệm Lập trình hướng đối tượng (Object Oriented Programming – OOP) • Các đặc điểm OOP 8494 – NVA – 1970 – Ths Tin học – ðH Tây ðơ – 3.04 – Giảng viên – – Ơng NVA NVA.nghỉ phép (22/9/2009) 19 20 Lập trình hướng đối tượng (OOP) Lập trình hướng đối tượng (tt tt)) Dữ liệu thủ tục ñược xử lý chặc chẽ với Thuộ Thu ộc tính + Hàm = Đối ttượ ượng ng Dữ liệu Các thể hiện, đặc tính, trạng thái đối tượng Các hoạt động, thao tác đối tượng Quan tâm ñến mối liên hệ thủ tục liệu Hàm Mục tiêu ðối tượng Phân tích tốn thành nhiều đối tượng Quan tâm ñến liệu thủ tục Dữ liệu ñược bảo vệ (che giấu) truy xuất từ bên ngồi đối tượng Dữ liệu Hàm ðối tượng Dữ liệu Hàm ðối tượng Dễ chỉnh sửa, thêm liệu hàm ñối tượng Mục tiêu tăng cường khả sử dụng lại 21 22 Lập trình hướng đối tượng (tt) tt) Lập trình hướng đối tượng (tt tt)) • Sự trừu tượng hóa (abstraction) • Sự trừu tượng hóa (abstraction) – Là bước tiến hóa từ lập trình cấu trúc – Chỉ quan tâm ñến ñặc ñiểm cần thiết (phớt lờ ñi chi tiết) tùy vào ngữ cảnh: VD: Phân tích thơng tin người: - Trong ngữ cảnh làm việc trường - Trong ngữ cảnh học trường? NhanVien Mã nhân viên – Họ tên – Năm sinh –… 24 – 23 OOP Các ñặc điểm OOP • • • • Tính bao gói Tính thừa kế Ảo hóa ða hình 25 26 Tính bao gói • Là đặc điểm chủ yếu OOP • Che giấu việc thực thi chi tiết ñối tượng • Ngăn tác ñộng từ ñối tượng khác đến liệu Ẩn thơng tin tính chất bao gói 27 28 Tính bao gói (tt) tt) Tính bao gói (tt tt)) – Các thuộc tính truy cập: – Thể kết hợp chặc chẽ thuộc tính phương thức – Dùng chung (public): có quyền truy xuất từ vị trí – ðịnh nghĩa lớp: việc đóng gói nhiều thành phần lại với – Dùng riêng (private): truy xuất ñược từ bên lớp (trong phương thức lớp đó) – Xác định giới hạn ñường truy cập ñến lớp – ðược bảo vệ (protected): truy xuất ñược từ bên lớp lớp thừa kế từ 29 30 Các đặc điểm OOP Các đặc điểm OOP • Tính thừa kế (inheritance) • Tính thừa kế (tt) – Chú ý: tránh thiết kế sai mặt ý nghĩa – Nhóm đặc tính chung lại với – Sử dụng lại (kế thừa) đặc trưng chung (thuộc tính + phương thức) lớp cho trước – Ích lợi: VD: Lớp XeHơi thừa kế từ lớp BánhXe SAI – Lớp phải lớp cha, ngồi cịn phải có thêm đặc trưng riêng nó: • Thêm hàm thêm thuộc tính • Tái ñịnh nghĩa hàm lớp cha, ñổi kiểu thuộc tính • Dùng hàm ảo • Chia sẻ sử dụng lại lớp có: – Tận dụng lại thuộc tính chung – Tận dụng lại thao tác tương tự • Thiết kế lớp gọn nhẹ, đơn giản 31 32 Các ñặc ñiểm OOP Con người – – Tên Giới tính • Tính thừa kế (tt) – Lớp có tất thành phần lớp cha ñược quyền truy xuất thành phần mà lớp cha cho phép (public + protected) Sinh viên Nhân viên Lớp học ðiểm thi Toán – – – Nghề nghiệp Hệ số lương + Tính điểm TB() + Nghỉ phép() – – Lớp cha truy xuất ñược thành phần lớp 33 34 Các ñặc ñiểm OOP Các ñặc ñiểm OOP • Tính thừa kế (tt) • Tính thừa kế – Các thành phần lớp che ñi thành phần trùng tên lớp cha – Thừa kế ñơn: thừa kế từ lớp – Thừa kế bội: thừa kế từ lớp trở lên • Khi truy xuất thành phần trùng tên truy xuất thành phần lớp • Tận dụng nhiều thành phần có sẵn • Dễ gây xung đột, cạnh tranh • Muốn truy xuất thành phần lớp cha, phải rõ – Trong C++: – Trong Java: :: super 35 36 Các ñặc ñiểm OOP Các ñặc ñiểm OOP • Tính thừa kế (tt) • Ảo hóa (virtualization) – Thừa kế bội – Kể tên lớp cha ứng xử chung (hàm ảo – virtual, abstract) cho tập hợp lớp – Khi nhận yêu cầu, tùy vào ñối tượng thuộc lớp có ứng xử riêng (thực thi hàm tương ứng lớp đó) 37 38 Các ñặc ñiểm OOP Các ñặc ñiểm OOP • Ảo hóa • Ảo hóa Vd: “V ”: cho tập hợp đối tượng hình học (điểm, đường thẳng, hình trịn, hình vng, …) “Kêu”: cho tập hợp vật (chó, mèo, gà, vịt, …) “V nhà”: cho tập hợp học sinh (ñi bộ, ñi xe ñạp, ñi xe gắn máy, ñi xe buýt, …) 39 – Hàm ảo: • Khơng thiết phải cần định nghĩa lớp cha • Phải định nghĩa lại lớp – Lớp ảo: • Chỉ dùng khai báo hàm ảo bên • Khơng ñược dùng ñể tạo ñối tượng 40 Các ñặc điểm OOP Các đặc điểm OOP • Tính đa hình (polymorphism) • Tính đa hình – Các đối tượng khác nhận chung yêu cầu có ứng xử khác – Kỹ thuật sử dụng: hàm ảo ðiểm ðường Thẳng Hình Trịn Hình Vng – Các hành động tên thực thi đối tượng thực khác (có kết khác nhau) tùy thuộc vào ngữ cảnh – Kỹ thuật sử dụng: tái ñịnh nghĩa hàm • Hàm trùng tên • Khác tham số (số lượng, thứ tự, kiểu) “Vẽ” 41 42 UML - Unified Modeling Language 43 44 UML Giới thiệu UML – Tạm dịch ngơn ngữ mơ hình hóa thống • Giới thiệu UML – Ra ñời vào năm 1997 ñang ñược sử dụng phổ biến • Các loại biểu ñồ UML – Bao gồm hệ thống ký hiệu ñồ họa, biểu ñồ (sơ ñồ) thống dùng ñể thiết kế hệ thống thơng tin (IS) theo hướng đối tượng • Biểu ñồ lớp – ðược sử dụng cho giai ñoạn phân tích, thiết kế, triển khai kiểm thử phần mềm – Các CaseTool (Rational Rose, System Architect, Argo UML, Visual Paradigm for UML, Umbrello…) hỗ trợ UML việc phát sinh chương trình tự động cho ngơn ngữ OOP 45 46 Các loại biểu ñồ UML Sơ ñồ lớp (Class Diagram) • UML Diagram • Lớp – Use Cases Diagram (biểu đồ tình sử dụng) – Class Diagram (biểu ñồ lớp) – Sequence Diagram (biểu ñồ trình tự) – Collaboration Diagram (biểu đồ cộng tác) – State Diagram (biểu ñồ trạng thái) – Component Diagram (biểu ñồ thành phần) – Deployment Diagram (biểu ñồ triển khai) 47 48 Sơ ñồ lớp (Class Diagram) Sơ ñồ lớp (Class Diagram) • Quan hệ kết hợp (Association) • Quan hệ kết hợp (Association) 49 50 Sơ ñồ lớp (Class Diagram) Sơ đồ lớp (Class Diagram) • Quan hệ kết hợp • Quan hệ tập hợp (Aggregation) 51 52 Sơ ñồ lớp (Class Diagram) Sơ ñồ lớp (Class Diagram) • Quan hệ tổng hợp (Composition) • Thừa kế (inheritance) Composition dạng Aggregation đặc biệt tổng thể ñược cấu thành hủy bỏ từ thành phần nó 53 54 Bài tập Bài tập nhà • Mơ hình hóa việc bán vé rạp chiếu phim theo góc nhìn người mua vé / người quản lý • Chọn đối tượng ngồi thực tế có liên quan với để xây dựng khung (thuộc tính, phương thức) đối tượng với đầy đủ đặc điểm: • Tiệm tạp hóa: Chủ tiệm cần quản lý việc mua bán hàng hóa (viết, tập) cửa hàng ñể biết – Hàng mua vào giá bao nhiêu? – Hàng bán giá bao nhiêu? Áp dụng kỹ thuật lập trình hướng đối tượng tính thừa kế để dựng khung ñối tượng cho người phụ trách mua bán ñiền thông tin vào sử dụng phương thức cho việc mua bán 55 – Tính thừa kế – Ảo hóa – ða hình • Cho ví dụ cụ thể cho đối tượng • Hạn nộp: 12:00 PM 06/10/2009 (mail giấy) 56 Bài nộp • Mail: – Subject: C++ Bai – – File word pdf • Giấy – C++ Bai – 57 ... ðối tượng Dữ liệu Hàm ðối tượng Dễ chỉnh sửa, thêm liệu hàm ñối tượng Mục tiêu tăng cường khả sử dụng lại 21 22 Lập trình hướng đối tượng (tt) tt) Lập trình hướng đối tượng (tt tt)) • Sự trừu tượng. . .Lập trình thơng thường (tt) tt) Lập trình hướng đối tượng • Lập trình cấu trúc (tt) • Một số khái niệm • Lập trình hướng đối tượng Object Oriented Programming... trình hướng ñối tượng (OOP) Lập trình hướng ñối tượng (tt tt)) Dữ liệu thủ tục ñược xử lý chặc chẽ với Thuộ Thu ộc tính + Hàm = Đối ttượ ượng ng Dữ liệu Các thể hiện, đặc tính, trạng thái đối tượng

Ngày đăng: 03/12/2015, 19:30

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan