intTypePromotion=1
ADSENSE

Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang Hải Bằng

Chia sẻ: Sơn Tùng | Ngày: | Loại File: PDF | Số trang:15

45
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Kỹ thuật lập trình - Chương 1: Lập trình hướng đối tượng" cung cấp cho người học các kiến thức: Lập trình thông thường, lập trình hướng đối tượng, Unified Modeling Language - UML. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang Hải Bằng

  1. Nội dung Chương 1 • Lập trình thông thườ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 1 2 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ư duy theo lối tuần tự, ñơn giản. Cấu trúc dữ dữ liliệ ệu + Giải thuậ Giả thuật = Ch ương Chươ ng trình – ðơn luồng và các công việc ñược thực hiện tuần tự trong luồng ñó. – Cấu trúc dữ liệu: cách tổ chức dữ liệu, mô tả bài – Tồn tại trong modul nhỏ của phương pháp lập toán dưới dạng ngôn ngữ lập trình. trình khác. – Giải thuật: một quy trình ñể thực hiện một công – Không giải quyết ñược các yêu cầu phức tạp. việc xác ñịnh. 3 4
  2. 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 cơ bản • Lập trình hướng ñối tượng – 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à Object Oriented Programming – OOP mục ñích của mỗi bài toán • Các ñặc ñiểm của OOP – Giải thuật luôn phụ thuộc chặt chẽ vào cấu trúc dữ liệu 5 6 Một số khái niệm cơ bản Một số khái niệm cơ bản (tt tt)) • ðối tượng (Object) • ðối tượng trong thế giới thực – Trong thế giới thực: • ñối tượng là một thc th (entity) cụ thể mà thông Trạng thái: thường ta có thể sờ, nhìn thấy hay cảm nhận ñược. • màu – Trong lập trình: • hãng sản xuất • Dùng ñể mô tả 1 người, sự vật hay khái niệm. • model • giá Hành ñộng: • ðối tượng là cái mà ứng dụng muốn ñề cập ñến. xe hơi •… • Dừng • Trong hệ thống hướng ñối tượng, mọi thứ ñều là ñối tượng. • Chạy • Tăng tốc •Thắng •… 7 8
  3. Một số khái niệm cơ bản (tt) tt) Một số khái niệm cơ bản (tt tt)) • ðối tượng trong thế giới thực (tt) • ðối tượng trong lập trình – Mọi ñối tượng ñều có trạng thái (state) và hành – Thuộc tính, ñặc tính, dữ liệu (attribute, ñộng (behavior) 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. 9 10 Một số khái niệm cơ bản (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, … 11 12
  4. Một số khái niệm cơ bản (tt) tt) Một số khái niệm cơ bản (tt tt)) • Thể hiện (instance) Thuộc tính: – Thuộc tính ñược xác ñịnh giá trị cụ thể. •Màu lá – ðối tượng cụ thể gọi là một thể hiện. •Màu thân •Chiều cao •Tọa ñộ Phương thức: •vẽ ðối tượng (object) là một thực thể ðối tượng Xe ñạp phần mềm bao bọc các thuộc tính (là 1 thể hiện hiện)) 13 14 bởi các phương thức liên quan. Một số khái niệm cơ bản (tt) tt) Một số khái niệm cơ bản (tt tt)) • Lớp (class) • Lớp (class) – Là mẫu (prototype) của các ñối tượng cùng – Lớp tạo ra ñối tượng: bằng cách gán giá trị cụ kiểu. thể cho các thuộc tính. – Là khuôn ñể ñổ ra các ñối tượng. • Lớp ñược tạo ra khi biên dịch – ðịnh nghĩa các thuộc tính và phương thức • ðối tượng tạo ra khi thực thi chương trình. 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 ðối tượng là một thể hiện (instance) của 1 lớp núi, … 15 16
  5. Một số khái niệm cơ bản (tt) NhanVien • Truyền thông báo – Mã nhân viên – Thông báo (message): là 1 lời yêu cầu 1 hoạt – Họ và tên ñộng. – Năm sinh – Nghề nghiệp – Thông báo bao gồm: • ðối tượng nhận thông ñiệp. – ðịa chỉ • Hoạt ñộng (tên của phương thức thực hiện). – Hệ số lương • Chi tiết thực hiện (giá trị các tham số). – Chức vụ + Làm việc () Ông NVA Bà TTB Ông LVC – Truyền thông báo: kích hoạt hàm cùng tên + Nghỉ phép () trên 1 ñối tượng ñể yêu cầu thông tin. + Lãnh lương () 17 18 Lập trình hướng ñối tượng NhanVien NhanVien • Một số khái niệm cơ bản – Mã nhân viên – 8494 – Họ và tên – NVA Lập trình hướng ñối tượng – Năm sinh – 1970 (Object Oriented Programming – OOP) – Nghề nghiệp – Ths Tin học • Các ñặc ñiểm của OOP – ðịa chỉ – ðH Tây ðô – Hệ số lương – 3.04 – Chức vụ – Giảng viên + Làm việc () Ông NVA + Nghỉ phép () NVA.nghỉ phép + Lãnh lương () (22/9/2009) 19 20
  6. Lập trình hướng ñối tượng (OOP) Lập trình hướng ñối tượng (tt tt))  Dữ liệu và thủ tục ñược Thuộ Thu ộc tính + Hàm = Đối ttượ ượng ng Dữ liệu xử lý chặc chẽ với nhau. Các thể hiện, đặc tính, Các hoạt động, trạng thái của đối thao tác của đối  Quan tâm ñến mối liên tượng tượng Mục tiêu chính Hàm hệ giữa thủ tục và dữ ðối tượng 1 liệu.  Phân tích bài toán thành nhiều ñối tượng. Dữ liệu  Dễ chỉnh sửa, thêm mới  Quan tâm ñến dữ liệu hơn thủ tục. Dữ liệu dữ liệu và hàm trong 1  Dữ liệu ñược bảo vệ (che giấu) và không thể truy Hàm ñối tượng. Hàm xuất từ bên ngoài ñối tượng. ðối tượng 2  Mục tiêu là tăng cường ðối tượng 3 khả năng 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 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 23 –… 24
  7. OOP Các ñặc ñiểm của 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 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. Ẩn thông tin là 1 tính chất của bao gói 27 28
  8. Tính bao gói (tt) tt) Tính bao gói (tt tt)) – Các thuộc tính truy cập: – Thể hiện sự kết hợp chặc chẽ giữa thuộc tính và phương thức. – Dùng chung (public): có quyền ñược truy xuất từ bất kỳ vị trí nào. – ðịnh nghĩa lớp: là việc ñóng gói nhiều thành – Dùng riêng (private): chỉ truy xuất ñược từ bên phần lại với nhau. trong lớp (trong các phương thức của lớp ñó). – Xác ñịnh và giới hạn các ñường truy cập ñến – ðược bảo vệ (protected): chỉ truy xuất ñược từ lớp. bên trong lớp và các lớp thừa kế từ nó. 29 30 Các ñặc ñiểm của OOP Các ñặc ñiểm của OOP • Tính thừa kế (inheritance) • Tính thừa kế (tt) – Nhóm các ñặc tính chung lại với nhau. – Chú ý: tránh thiết kế sai về mặt ý nghĩa. – Sử dụng lại (kế thừa) các ñặc trưng chung VD: Lớp XeHơi thừa kế từ lớp BánhXe là SAI. (thuộc tính + phương thức) của 1 lớp cho trước. – Lớp con phải chính là lớp cha, ngoài ra còn – Ích lợi: phải có thêm những ñặc trưng riêng của nó: • Chia sẻ và sử dụng lại những lớp ñã có: • Thêm hàm hoặc thêm thuộc tính – Tận dụng lại các thuộc tính chung. • Tái ñịnh nghĩa hàm của lớp cha, ñổi kiểu thuộc tính – Tận dụng lại các thao tác tương tự. • Dùng hàm ảo • Thiết kế lớp gọn nhẹ, ñơn giản hơn. 31 32
  9. Con người Các ñặc ñiểm của OOP – Tên • Tính thừa kế (tt) – Giới tính – 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). Sinh viên Nhân viên – Lớp cha không thể truy xuất ñược thành phần của lớp con. – Lớp học – Nghề nghiệp – ðiểm thi Toán – Hệ số lương + Tính ñiểm TB() + Nghỉ phép() 33 34 Các ñặc ñiểm của OOP Các ñặc ñiểm của OOP • Tính thừa kế (tt) • Tính thừa kế – Các thành phần của lớp con sẽ che ñi các – Thừa kế ñơn: thừa kế từ 1 lớp thành phần trùng tên trong lớp cha. – Thừa kế bội: thừa kế từ 2 lớp trở lên. • Khi truy xuất thành phần trùng tên ñó sẽ truy xuất • Tận dụng ñược nhiều thành phần có sẵn. thành phần của lớp con. • Dễ gây ra xung ñột, cạnh tranh. • Muốn truy xuất thành phần của lớp cha, phải chỉ rõ. – Trong C++: :: – Trong Java: super.. 35 36
  10. Các ñặc ñiểm của OOP Các ñặc ñiểm của OOP • Tính thừa kế (tt) • Ảo hóa (virtualization) – Thừa kế bội – 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 ñó). 37 38 Các ñặc ñiểm của OOP Các ñặc ñiểm của OOP • Ảo hóa • Ảo hóa Vd: – Hàm ảo: 1. “V”: cho tập hợp các ñối tượng hình học (ñiểm, • Không nhất thiết phải cần ñịnh nghĩa ở lớp cha. ñường thẳng, hình tròn, hình vuông, …) • Phải ñược ñịnh nghĩa lại trong lớp con. 2. “Kêu”: cho tập hợp các con vật (chó, mèo, gà, – Lớp ảo: vịt, …) • Chỉ dùng khai báo các hàm ảo bên trong. 3. “V nhà”: cho tập hợp các học sinh (ñi bộ, ñi xe • Không ñược dùng ñể tạo ra ñối tượng. ñạp, ñi xe gắn máy, ñi xe buýt, …) 39 40
  11. Các ñặc ñiểm của OOP Các ñặc ñiểm của OOP • Tính ña hình (polymorphism) • Tính ña hình – Các ñối tượng khác nhau khi nhận chung 1 yêu – Các hành ñộng cùng tên thực thi trên cùng 1 ñối cầu vẫn có thể có những ứng xử khác nhau. tượng vẫn có thể thực hiện khác nhau (có kết – Kỹ thuật sử dụng: hàm ảo quả khác nhau) tùy thuộc vào ngữ cảnh. ðiểm ðường Thẳng Hình Tròn Hình Vuông – 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
  12. UML 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 1997 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 • Biểu ñồ lớp (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. 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) – Component Diagram (biểu ñồ thành phần) – Deployment Diagram (biểu ñồ triển khai) 47 48
  13. 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
  14. 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 • Chọn các ñối tượng ngoài thực tế có liên góc nhìn của người mua vé / người quản lý quan với nhau ñể xây dựng khung (thuộc • Tiệm tạp hóa: Chủ tiệm cần quản lý việc mua tính, phương thức) các ñối tượng với ñầy ñủ bán hàng hóa (viết, tập) trong cửa hàng ñể biết các ñặc ñiểm: – Tính thừa kế. – Hàng nào mua vào giá bao nhiêu? – Ảo hóa. – Hàng nào bán ra và giá bao nhiêu? – ða hình. Áp dụng kỹ thuật lập trình hướng ñối tượng và tính • Cho 3 ví dụ cụ thể cho từng ñối tượng 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ạn nộp: 12:00 PM 06/10/2009 (mail hoặc phương thức cho việc mua bán 55 giấy) 56
  15. Bài nộp • Mail: – Subject: C++ Bai 1 – – File word hoặc pdf • Giấy – C++ Bai 1 – 57
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2