CHƯƠNG 1 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

15 258 0
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 lttlan.tdu@gmail.com http://lttlan-tdu.blogspot.com 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 ñượ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ả toá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 toán – Giải thuật 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 ñược – 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 ñều 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 ñược 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à khuôn ñể ñổ ñối tượng – ðịnh nghĩa thuộc tính phương thức chung cho ñối tượng có loại • Lớp ñược 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 yê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 toá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 ñố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 ñược 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, 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 ñược 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 vuông, …) “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 ñược ñị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 Vuông – 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 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 [...]... với nhau ñể xây dựng khung (thuộc tính, phương thức) các ñối tượng với ñầy ñủ các ñặ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) trong cửa hàng ñể biết – Hàng nào mua vào giá bao nhiêu? – Hàng nào bán ra và giá bao nhiêu? Áp dụng kỹ thuật lập trình hướng ñối tượng và tính thừa kế của nó ñể dựng khung ñối tượng cho người phụ trách mua bán ñiền thông tin vào và sử dụng... hình – Các ñối tượng khác nhau khi nhận chung 1 yêu cầu vẫn có thể có những ứng xử khác nhau – Kỹ thuật sử dụng: hàm ảo ðiểm ðường Thẳng Hình Tròn Hình Vuông – Các hành ñộng cùng tên thực thi trên cùng 1 ñối tượng vẫn có thể thực hiện khác nhau (có kết quả 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... và 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 3 ví dụ cụ thể cho từng ñối tượng • Hạn nộp: 12 :00 PM 06 /10 /2009 (mail hoặc giấy) 56 Bài nộp • Mail: – Subject: C++ Bai 1 – – File word hoặc pdf • Giấy – C++ Bai 1 – 57 ... (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 là 1 dạng Aggregation ñặc biệt trong ñó cái tổng thể sẽ ñược cấu thành hoặc hủy bỏ từ những thành phần của nó nó 53 54 Bài tập Bài tập về nhà • Mô hình hóa việc bán vé tại rạp chiếu phim theo góc nhìn của người mua vé / người quản lý • Chọn các ñối tượng ngoài thực... Giới thiệu UML – Tạm dịch là ngôn ngữ mô hình hóa thống nhất • Giới thiệu về UML – Ra ñời vào năm 19 97 và hiện nay ñang ñược sử dụng rất phổ biến • Các loại biểu ñồ trong UML – Bao gồm một hệ thống các ký hiệu ñồ họa, biểu ñồ (sơ ñồ) thống nhất dùng ñể thiết kế các hệ thống thông tin (IS) theo hướng ñối tượng • Biểu ñồ lớp – ðược sử dụng cho các giai ñoạn phân tích, thiết kế, triển khai và kiểm thử... Architect, Argo UML, Visual Paradigm for UML, Umbrello…) hỗ trợ UML trong việc phát sinh chương trình tự ñộng cho các ngôn ngữ OOP 45 46 Các loại biểu ñồ trong UML Sơ ñồ lớp (Class Diagram) • UML Diagram • Lớp – Use Cases Diagram (biểu ñồ tình huống 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)

Ngày đăng: 30/01/2016, 10:50

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan