Bài giảng Lập trình hướng đối tượng với C++ - Chương I Giới thiệu về lập trình hướng đối tượng OOP

ppt 29 trang huongle 3810
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng với C++ - Chương I Giới thiệu về lập trình hướng đối tượng OOP", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_lap_trinh_huong_doi_tuong_voi_c_chuong_i_gioi_thie.ppt

Nội dung text: Bài giảng Lập trình hướng đối tượng với C++ - Chương I Giới thiệu về lập trình hướng đối tượng OOP

  1. Lập trình hướng đối tượng Lập trình hướng đối tượng với C++ Hà Văn Sang Khoa HTTT, Academy Of Finance, Hanoi sanghv@hvtc.edu.vn
  2. Chương I Object Oriented Programing– Information Systems Department 2
  3. Giới thiệu Tổng quan n Lập trình hướng đối tượng q Lập trình định hướng đối tượng q Object Oriented Programming (OOP) n Được xem là: q Cách tiếp cận mới, hiệu quả hơn q Giúp tăng năng suất q Dễ dàng bảo trì, sửa đổi, nâng cấp n Mục đích: q Giảm bớt thao tác viết trình q Mô tả chân thực thế giới thực Vậy OOP khó học hay dễ học ? Object Oriented Programing– Information Systems Department 3
  4. 1.1. TổngTổng quanquan vềvề cáccác kỹkỹ thuậtthuật lậplập trìnhtrình n 1.1 Lập trình tuyến tính n 1.2 Lập trình cấu trúc n 1.3 Lập trình môđun n 1.4 Nhược điểm của lập trình cấu trúc n 1.5 Lập trình hướng đối tượng Object Oriented Programing– Information Systems Department 4
  5. 1.1 Lập trình tuyến tính §Lập trình tuyến tính : • Còn gọi là lập trình phi cấu trúc • Giải quyết các bài toán tương nhỏ, đối đơn giản §Đặc điểm: • Chỉ gồm một chương trình chính • Gồm một dãy tuần tự các câu lệnh • Chương trình ngắn, ít hơn 100 dòng Object Oriented Programing– Information Systems Department 5
  6. 1.1 Lập trình tuyến tính (tiếp) n Nhược điểm: q Không sử dụng lại được các đoạn mã q Không có khả năng kiểm soát phạm vi truy xuất dữ liệu q Mọi dữ liệu trong chương trình là toàn cục q Dữ liệu có thể bị sửa đổi ở bất cứ vị trí nào trong chương trình n Không đáp ứng được việc triển khai phần mềm Object Oriented Programing– Information Systems Department 6
  7. 1.2 Lập trình cấu trúc n Ra đời vào những năm 70: n Chương trình được chia nhỏ thành chương trình con: q Thủ tục (Procedure) q Hàm (Function) n Các chương trình con: q Độc lập với nhau và có dữ liệu riêng q Trao đổi qua: tham số và biến toàn cục Object Oriented Programing– Information Systems Department 7
  8. 1.2 Lập trình cấu trúc (tiếp) n Xuất hiện khái niệm trừu tượng hoá q Là khả năng quan sát sự vật mà: n Không quan tâm tới các chi tiết không quan trọng bên trong n Không quan tâm tới việc thực hiện như thế nào q Trừu tượng hoá dữ liệu q Trừu tượng hoá thao tác n Ngôn ngữ lập trình cấu trúc: q C, Pascal q Foxpro Object Oriented Programing– Information Systems Department 8
  9. 1.3 Lập trình môđun n Với lập trình môđun: q Các thủ tục có chung một chức năng được nhóm lại với nhau q Chương trình được chia thành nhiều phần nhỏ q Các phần tương tác thông qua việc gọi thủ tục q Mỗi mô đun có dữ liệu của riêng nó Object Oriented Programing– Information Systems Department 9
  10. 1.41.4 NhượcNhược điểmđiểm củacủa lậplập trìnhtrình truyềntruyền thốngthống n Nhược điểm: q Chương trình khó kiểm soát q Khó khăn trong việc bổ sung, nâng cấp chương trình q Khi thay đổi, bổ sung dữ liệu dùng chung thì phải thay đổi gần như tất cả thủ tục/hàm liên quan q Khả năng sử dụng lại các đoạn mã chưa nhiều q Không mô tả đầy đủ, trung thực hệ thống trong thực tế Object Oriented Programing– Information Systems Department 10
  11. 1.5 Lập trình hướng đối tượng n Là phương pháp lập trình: q Mô tả chính xác các đối tượng trong thế giới q Lấy đối tượng làm nền tảng xây dựng thuật toán q Thiết kế xoay quanh dữ liệu của hệ thống q Chương trình được chia thành các lớp đối tượng q Dữ liệu được đóng gói, che dấu và bảo vệ q Đối tượng làm việc với nhau qua thông báo q Chương trình được thiết kết theo cách từ dưới lên (bottom-up) Object Oriented Programing– Information Systems Department 11
  12. 1.5 Lập trình hướng đối tượng Object Oriented Programing– Information Systems Department 12
  13. 2. Một số khái niệm cơ bản n 2.1 Hệ thống hướng đối tượng n 2.2 Đối tượng n 2.3 Thuộc tính & Phương thức n 2.4 Lớp & Lớp con n 2.5 Lớp trừu tượng n 2.6 Truyền thông điệp n 2.7 Sự trừu tượng hoá n 2.8 Sự đóng gói n 2.9 Sự kế thừa n 2.10 Sự đa hình Object Oriented Programing– Information Systems Department 13
  14. 2.1 Hệ thống hướng đối tượng n Là hệ thống có đặc điểm sau: q Gồm tập hợp các đối tượng n Sự đóng gói của 2 thành phần: q Dữ liệu (thuộc tính của đối tượng) q Các thao tác trên dữ liệu q Các đối tượng có thể kế thừa các đặc tính của đối tượng khác q Hoạt động thông qua sự tương tác giữa các đối tượng nhờ cơ chế truyền thông điệp n Thông báo n Gửi & nhận thông báo Object Oriented Programing– Information Systems Department 14
  15. 2.2 Đối tượng (Object) n Là khái niệm trừu tượng phản ánh các thực thể trong thế giới thực q Có thể là một thực thể vật lý q Có thể là một khái niệm trừu tượng n Được định nghĩa là sự thể hiện của một lớp n Chính là các thực thể trong hệ thống hướng đối tượng n Một đối tượng là sự đóng gói 2 thành phần: q Trạng thái (state) hay dữ liệu q Các ứng xử (behavior) hay hành vi, thao tác Object Oriented Programing– Information Systems Department 15
  16. 2.3 Thuộc tính & phương thức n Thuộc tính bao gồm: q Hằng, biến q Tham số nội tại n Thuộc tính được xác định kiểu, gồm: q Kiểu cổ điển q Kiểu do người dùng định nghĩa n Phương thức là: q Các hàm nội tại của đối tượng q Có kiểu trả về q Tên gọi khác: hàm thành viên Object Oriented Programing– Information Systems Department 16
  17. 2.4 Lớp (Class) & Lớp con (SubClass) n Lớp: là tập hợp các đối tượng có cùng thuộc tính và hành vi n Là bản thiết kế hoặc bản mẫu mô tả một cấu trúc dữ liệu gồm: q Các thành phần dữ liệu q Các phương thức n Lớp được sử dụng như kiểu dữ liệu người dùng định nghĩa n Lớp con: q Là lớp thông thường q Có thêm tính chất kế thừa đặc tính của lớp khác Object Oriented Programing– Information Systems Department 17
  18. 2.5 Lớp trừu tượng n Là lớp mà nó không thể trở thành một lớp thực tế nào n Được thiết kế nhằm tạo ra lớp có đặc tính tổng quát n Bản thân nó chưa có ý nghĩa nên chưa thể viết mã cho đối tượng n Ví dụ: q Lớp hình phẳng q Lớp động vật Object Oriented Programing– Information Systems Department 18
  19. 2.6 Truyền thông điệp n Thông điệp: q Là phương tiện để đối tượng này chuyển yêu cầu tới đối tượng khác. n Một thông điệp bao gồm: q Handle của đối tượng đích (đối tượng chủ) q Tên phương thức cần thực hiện q Các thông tin cần thiết khác (tham số) n Hệ thống yêu cầu đối tượng thực hiện phương thức như sau: q Gửi thông báo và tham số cho đối tượng q Kiểm tra tính hợp lệ của thông báo q Gọi thực hiện hàm tương ứng phương thức Object Oriented Programing– Information Systems Department 19
  20. 2.7 Sự trừu tượng hoá n Khái niệm: q Là khả năng bỏ qua hay không để ý tới các thành phần không quan trọng. n Các loại trừu tượng hoá: q Trừu tượng hoá dữ liệu: không quan tâm các chi tiết không quan trọng bên trong q Trừu tượng hoá chức năng: không quan tâm làm thế nào để thực hiện công việc n Tóm lại: q Chỉ quan tâm tới đặc điểm quan trọng q Bỏ qua các chi tiết không liên quan Object Oriented Programing– Information Systems Department 20
  21. 2.8 Sự đóng gói n Khái niệm: q Là cơ chế ràng buộc dữ liệu và các thao tác trên dữ liệu thành thể thống nhất. n Đóng gói gồm: q Bao gói: người dùng giao tiếp với hệ thống qua giao diện q Che dấu: ngăn chặn các thao tác không được phép từ bên ngoài n Ưu điểm: q Quản lý sự thay đổi q Bảo vệ dữ liệu Object Oriented Programing– Information Systems Department 21
  22. 2.9 Sự kế thừa n Khái niệm: q Khả năng cho phép xây dựng lớp mới được thừa hưởng các thuộc tính của lớp đã có n Đặc điểm: q Lớp nhận được có thể bổ sung các thành phần q Hoặc định nghĩa là các thuộc tính của lớp cha n Các loại kế thừa: q Đơn kế thừa q Đa kế thừa Object Oriented Programing– Information Systems Department 22
  23. 2.10 Sự đa hình n Khái niệm: q Khả năng đưa một phương thức có cùng tên trong các lớp con n Thực hiện bởi: q Định nghĩa lại q Nạp chồng n Cơ chế dựa trên sự kết gán: q Kết gán sớm q Kết gán muộn Object Oriented Programing– Information Systems Department 23
  24. 3.3. CácCác bướcbước thiếtthiết kếkế chươngchương trìnhtrình OOPOOP n Các bước chính: q Xác định các dạng đối tượng (lớp) q Tìm dữ liệu dùng chung, chia xẻ q Xác định lớp cơ sở dựa vào dữ liệu dùng chung q Xây dựng lớp dẫn xuất từ lớp cơ sở Object Oriented Programing– Information Systems Department 24
  25. 4. Ưu điểm của OOP n Ưu điểm chính: q Loại bỏ các đoạn mã lặp lại q Tạo ra các chương trình an toàn, bảo mật q Dễ dàng mở rộng và nâng cấp q Rút ngắn thời gian xây dựng hệ thống q Tăng năng xuất và hiệu quả hơn q Chương trình được thiết kế theo đúng qui trình Object Oriented Programing– Information Systems Department 25
  26. 5. Một số ngôn ngữ OOP n Hầu hết các ngôn ngữ lập trình đều hỗ trợ OOP, có thể chia thành 2 loại: q Ngôn ngữ hỗ trợ hướng đối tượng: n Object C, Pascal, C++, Delphi q Ngôn ngữ hướng đối tượng: n SmallTalk, JAVA n Một số ngôn ngữ OOPhiện nay: q Visual C++ q VB.NET, C# Object Oriented Programing– Information Systems Department 26
  27. 6. Ứng dụng của OOP n Dùng để phát triển phần mềm trong nhiều lĩnh vực khác nhau: q Ví dụ: hệ điều hành Windows n Lĩnh vực chính: q Hệ thống thời gian thực q Cơ sở dữ liệu hướng đối tượng q Hệ siêu văn bản, đa phương tiện q Trí tuệ nhân tạo q Lập trình song song, mạng nơron Object Oriented Programing– Information Systems Department 27
  28. Bài tập Sử dụng TC++ để lập trình: 1. Tìm Min, Max của dãy n số nguyên, thực 2. Tính tổng S=1+1/2+ +1/n 3. Sắp xếp dãy n số nguyên, thực bằng các phương pháp: Selection, Insert, Bubble, Quick sort, merge sort 4. Quản lý danh sách n sinh viên thông tin gồm: họ tên, ngày sinh, gt, toán, lý, hóa, đtb. Viết các hàm/thủ tục nhập danh sách, in danh sách, sắp xếp theo họ tên, đtb Object Oriented Programing– Information Systems Department 28
  29. Qui cách nộp bài Gửi Email tới địa chỉ: sanghv@gmail.com Tiêu đề (Subject): [Lớp][BT1][Ho_va_Ten][Ngày sinh] Ví dụ: [K44/41.01][BT1][Nguyen_Van_A][xx/xx/xxxx] Đính kèm bài làm (nên zip lại thành 1 thư mục) Object Oriented Programing– Information Systems Department 29