Lập trình hướng đối tượng & C++ - Chương 1: Lập trình hướng đối tượng

Tài liệu Lập trình hướng đối tượng & C++ - Chương 1: Lập trình hướng đối tượng: LẬP TRèNH HƯỚNG ðỐI TƯỢNG Chương 1 lttlan.tdu@gmail.com 1 Nội dung • Lập trỡnh thụng thường. • Lập trỡnh hướng ủối tượng. • Unified Modeling Language - UML. 2 Lập trỡnh thụng thường • Lập trỡnh tuyến tớnh – Tư duy theo lối tuần tự, ủơn giản. – ðơn luồng và cỏc cụng việc ủược thực hiện tuần tự trong luồng ủú. – Tồn tại trong modul nhỏ của phương phỏp lập trỡnh khỏc. – Khụng giải quyết ủược cỏc yờu cầu phức tạp. 3 Lập trỡnh thụng thường (tt) • Lập trỡnh cấu trỳc – Cấu trỳc dữ liệu: cỏch tổ chức dữ liệu, mụ tả bài Cấu trỳc dữ liệu + Giải thuật = Chương trỡnh toỏn dưới dạng ngụn ngữ lập trỡnh. – Giải thuật: một quy trỡnh ủể thực hiện một cụng việc xỏc ủịnh. 4 Lập trỡnh thụng thường (tt) • Lập trỡnh cấu trỳc (tt) – Phõn chia chương trỡnh chớnh thành cỏc chương trỡnh con cho phự hợp với yờu cầu, chức năng và mục ủớch của mỗi bài toỏn – Giải thuật luụn phụ thuộc chặt chẽ vào cấu trỳc dữ liệu 5 Lập trỡnh hướng ủối tượng • Một số khỏi niệm cơ bản • Lập trỡ...

pdf15 trang | Chia sẻ: putihuynh11 | Lượt xem: 595 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Lập trình hướng đối tượng & C++ - Chương 1: Lập trình hướng đối tượng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH HƯỚNG ðỐI TƯỢNG Chương 1 lttlan.tdu@gmail.com 1 Nội dung • Lập trình thơng thường. • Lập trình hướng đối tượng. • Unified Modeling Language - UML. 2 Lập trình thơng thường • Lập trình tuyến tính – Tư duy theo lối tuần tự, đơn giản. – ðơn luồng và các cơng việc được thực hiện tuần tự trong luồng đĩ. – Tồn tại trong modul nhỏ của phương pháp lập trình khác. – Khơng giải quyết được các yêu cầu phức tạp. 3 Lập trình thơng thường (tt) • Lập trình cấu trúc – Cấu trúc dữ liệu: cách tổ chức dữ liệu, mơ tả bài Cấu trúc dữ liệu + Giải thuật = Chương trình tốn dưới dạng ngơn ngữ lập trình. – Giải thuật: một quy trình để thực hiện một cơng việc xác định. 4 Lập trình thơng thường (tt) • Lập trình cấu trúc (tt) – Phân chia chương trình chính thành các chương trình con cho phù hợp với yêu cầu, chức năng và mục đích của mỗi bài tốn – Giải thuật luơn phụ thuộc chặt chẽ vào cấu trúc dữ liệu 5 Lập trình hướng đối tượng • Một số khái niệm cơ bản • Lập trình hướng đối tượng Object Oriented Programming – OOP • Các đặc điểm của OOP 6 Một số khái niệm cơ bản • ðối tượng (Object) – Trong thế giới thực: • đối tượng là một thc th (entity) cụ thể mà thơng thường ta cĩ thể sờ, nhìn thấy hay cảm nhận được. – Trong lập trình: • Dùng để mơ tả 1 người, sự vật hay khái niệm. • ðối tượng là cái mà ứng dụng muốn đề cập đến. • Trong hệ thống hướng đối tượng, mọi thứ đều là đối tượng. 7 Một số khái niệm cơ bản (tt) • ðối tượng trong thế giới thực 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 • xe hơi 8 Một số khái niệm cơ bản (tt) • ðối tượng trong thế giới thực (tt) – Mọi đối tượng đều cĩ trạng thái (state) và hành động (behavior) 9 Một số khái niệm cơ bản (tt) • ðối tượng trong lập trình – Thuộc tính, đặc tính, dữ liệu (attribute, property, data): • Trình bày, mơ tả các đặc điểm của đối tượng. – Phương thức, ứng xử, hàm (method, behavior, function): • Liên quan đến những thứ đối tượng làm. • Tác động lên dữ liệu của đối tượng. 10 Một số khái niệm cơ bản (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, 11 12 Một số khái niệm cơ bản (tt) Thuộc tính: •Màu lá •Màu thân •Chiều cao •Tọa độ Phương thức: •vẽ 13 Một số khái niệm cơ bản (tt) • Thể hiện (instance) – Thuộc tính được xác định giá trị cụ thể. – ðối tượng cụ thể gọi là một thể hiện. ðối tượng (object) là một thực thể phần mềm bao bọc các thuộc tính bởi các phương thức liên quan. ðối tượng Xe đạp (là 1 thể hiện) 14 Một số khái niệm cơ bản (tt) • Lớp (class) – Là mẫu (prototype) của các đối tượng cùng kiểu. – Là khuơn để đổ ra các đối tượng. – ðịnh nghĩa các thuộc tính và phương thức chung cho các đối tượng cĩ cùng loại. VD: Lớp XeDap là thiết kế chung cho các đối tượng xe mini, xe địn, xe đầm, xe đua, xe leo núi, 15 Một số khái niệm cơ bản (tt) • Lớp (class) – Lớp tạo ra đối tượng: bằng cách gán giá trị cụ thể cho các thuộc tính. • Lớp được tạo ra khi biên dịch • ðối tượng tạo ra khi thực thi chương trình. ðối tượng là một thể hiện (instance) của 1 lớp 16 NhanVien – Mã nhân viên – Họ và tên – Năm sinh – Nghề nghiệp – ðịa chỉ – Hệ số lương – Chức vụ + Làm việc () + Nghỉ phép () + Lãnh lương () Ơng NVA Bà TTB Ơng LVC 17 Một số khái niệm cơ bản (tt) • Truyền thơng báo – Thơng báo (message): là 1 lời yêu cầu 1 hoạt động. – Thơng báo bao gồm: • ðối tượng nhận thơng điệp. • Hoạt động (tên của phương thức thực hiện). • Chi tiết thực hiện (giá trị các tham số). – Truyền thơng báo: kích hoạt hàm cùng tên trên 1 đối tượng để yêu cầu thơng tin. 18 NhanVien – Mã nhân viên – Họ và tên – Năm sinh – Nghề nghiệp NhanVien – 8494 – NVA – 1970 – Ths Tin học – ðịa chỉ – Hệ số lương – Chức vụ + Làm việc () + Nghỉ phép () + Lãnh lương () Ơng NVA – ðH Tây ðơ – 3.04 – Giảng viên NVA.nghỉ phép (22/9/2009) 19 Lập trình hướng đối tượng • Một số khái niệm cơ bản Lập trình hướng đối tượng (Object Oriented Programming – OOP) • Các đặc điểm của OOP 20 Lập trình hướng đối tượng (OOP) Thuộc tính + Hàm = Đối tượng Các thể hiện, đặc tính, trạng thái của đối tượng Các hoạt động, thao tác của đối tượng Mục tiêu chính  Phân tích bài tốn thành nhiều đối tượng.  Quan tâm đến dữ liệu hơn thủ tục.  Dữ liệu được bảo vệ (che giấu) và khơng thể truy xuất từ bên ngồi đối tượng. 21 Lập trình hướng đối tượng (tt) ðối tượng 1 Dữ liệu Hàm  Dữ liệu và thủ tục được xử lý chặc chẽ với nhau.  Quan tâm đến mối liên hệ giữa thủ tục và dữ liệu. Dữ liệu Hàm Dữ liệu Hàm ðối tượng 3 ðối tượng 2  Dễ chỉnh sửa, thêm mới dữ liệu và hàm trong 1 đối tượng.  Mục tiêu là tăng cường khả năng sử dụng lại. 22 Lập trình hướng đối tượng (tt) • Sự trừu tượng hĩa (abstraction) 23 Lập trình hướng đối tượng (tt) • Sự trừu tượng hĩa (abstraction) – Là bước tiến hĩa tiếp theo từ lập trình cấu trúc. – Chỉ quan tâm đến những đặc điểm cần thiết (phớt lờ đi những chi tiết) tùy vào ngữ cảnh: VD: Phân tích thơng tin của 1 người: - Trong ngữ cảnh làm việc trong trường. - Trong ngữ cảnh học tại trường? NhanVien – Mã nhân viên – Họ và tên – Năm sinh – 24 OOP 25 Các đặc điểm của OOP • Tính bao gĩi • Tính thừa kế • Ảo hĩa • ða hình 26 Tính bao gĩi • Là đặc điểm chủ yếu của OOP. • Che giấu việc thực thi chi tiết của 1 đối tượng. • Ngăn sự tác động từ đối tượng khác đến dữ liệu. 27 Ẩn thơng tin là 1 tính chất của bao gĩi 28 Tính bao gĩi (tt) – Thể hiện sự kết hợp chặc chẽ giữa thuộc tính và phương thức. – ðịnh nghĩa lớp: là việc đĩng gĩi nhiều thành phần lại với nhau. – Xác định và giới hạn các đường truy cập đến lớp. 29 Tính bao gĩi (tt) – Các thuộc tính truy cập: – Dùng chung (public): cĩ quyền được truy xuất từ bất kỳ vị trí nào. – Dùng riêng (private): chỉ truy xuất được từ bên trong lớp (trong các phương thức của lớp đĩ). –ðược bảo vệ (protected): chỉ truy xuất được từ bên trong lớp và các lớp thừa kế từ nĩ. 30 Các đặc điểm của OOP • Tính thừa kế (inheritance) – Nhĩm các đặc tính chung lại với nhau. – Sử dụng lại (kế thừa) các đặc trưng chung (thuộc tính + phương thức) của 1 lớp cho trước. – Ích lợi: • Chia sẻ và sử dụng lại những lớp đã cĩ: – Tận dụng lại các thuộc tính chung. – Tận dụng lại các thao tác tương tự. • Thiết kế lớp gọn nhẹ, đơn giản hơn. 31 Các đặc điểm của OOP • Tính thừa kế (tt) – Chú ý: tránh thiết kế sai về mặt ý nghĩa. VD: Lớp XeHơi thừa kế từ lớp BánhXe là SAI. – Lớp con phải chính là lớp cha, ngồi ra cịn phải cĩ thêm những đặc trưng riêng của nĩ: • Thêm hàm hoặc thêm thuộc tính • Tái định nghĩa hàm của lớp cha, đổi kiểu thuộc tính • Dùng hàm ảo 32 Con người – Tên – Giới tính Sinh viên – Lớp học – ðiểm thi Tốn + Tính điểm TB() Nhân viên – Nghề nghiệp – Hệ số lương + Nghỉ phép() 33 Các đặc điểm của OOP • Tính thừa kế (tt) – Lớp con sẽ cĩ tất cả các thành phần của lớp cha nhưng chỉ được quyền truy xuất thành phần mà lớp cha cho phép (public + protected). – Lớp cha khơng thể truy xuất được thành phần của lớp con. 34 Các đặc điểm của OOP • Tính thừa kế (tt) – Các thành phần của lớp con sẽ che đi các thành phần trùng tên trong lớp cha. • Khi truy xuất thành phần trùng tên đĩ sẽ truy xuất thành phần của lớp con. • Muốn truy xuất thành phần của lớp cha, phải chỉ rõ. – Trong C++: :: – Trong Java: super. 35 Các đặc điểm của OOP • Tính thừa kế – Thừa kế đơn: thừa kế từ 1 lớp – Thừa kế bội: thừa kế từ 2 lớp trở lên. • Tận dụng được nhiều thành phần cĩ sẵn. • Dễ gây ra xung đột, cạnh tranh. 36 Các đặc điểm của OOP • Tính thừa kế (tt) – Thừa kế bội 37 Các đặc điểm của OOP • Ảo hĩa (virtualization) – Kể tên trong lớp cha một ứng xử chung (hàm ảo – virtual, abstract) cho tập hợp các lớp con. – Khi nhận yêu cầu, tùy vào đối tượng thuộc lớp nào sẽ cĩ ứng xử riêng (thực thi hàm tương ứng của lớp đĩ). 38 Các đặc điểm của OOP • Ảo hĩa Vd: 1. “V”: cho tập hợp các đối tượng hình học (điểm, đường thẳng, hình trịn, hình vuơng, ) 2. “Kêu”: cho tập hợp các con vật (chĩ, mèo, gà, vịt, ) 3. “V nhà”: cho tập hợp các học sinh (đi bộ, đi xe đạp, đi xe gắn máy, đi xe buýt, ) 39 Các đặc điểm của OOP • Ảo hĩa – Hàm ảo: • Khơng nhất thiết phải cần định nghĩa ở lớp cha. • Phải được định nghĩa lại trong lớp con. – Lớp ảo: • Chỉ dùng khai báo các hàm ảo bên trong. • Khơng được dùng để tạo ra đối tượng. 40 Các đặc điểm của OOP • Tính đa hình (polymorphism) – 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 ðường Thẳng Hình Trịnðiểm Hình Vuơng “Vẽ” 41 Các đặc điểm của OOP • Tính đa hình – 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) 42 43 UML - Unified Modeling Language 44 UML • Giới thiệu về UML • Các loại biểu đồ trong UML • Biểu đồ lớp 45 Giới thiệu UML – Tạm dịch là ngơn ngữ mơ hình hĩa thống nhất. – Ra đời vào năm 1997 và hiện nay đang được sử dụng rất phổ biến. – 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. – ðược sử dụng cho các giai đoạn phân tích, thiết kế, triển khai và kiểm thử phần mềm. – Các CaseTool (Rational Rose, System 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. 46 Các loại biểu đồ trong UML • UML Diagram – 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) – Component Diagram (biểu đồ thành phần) – Deployment Diagram (biểu đồ triển khai) 47 Sơ đồ lớp (Class Diagram) • Lớp 48 Sơ đồ lớp (Class Diagram) • Quan hệ kết hợp (Association) 49 Sơ đồ lớp (Class Diagram) • Quan hệ kết hợp (Association) 50 Sơ đồ lớp (Class Diagram) • Quan hệ kết hợp 51 Sơ đồ lớp (Class Diagram) • Quan hệ tập hợp (Aggregation) 52 Sơ đồ lớp (Class Diagram) • Quan hệ tổng hợp (Composition) 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ĩ. 53 Sơ đồ lớp (Class Diagram) • Thừa kế (inheritance) 54 Bài tập • 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ý • 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 phương thức cho việc mua bán 55 Bài tập về nhà • Chọn các đối tượng ngồi thực tế cĩ liên quan 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: – 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

Các file đính kèm theo tài liệu này:

  • pdfchapter1_3226_1993462.pdf