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
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:
- bai_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
- 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
- Chương I Object Oriented Programing– Information Systems Department 2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 1.5 Lập trình hướng đối tượng Object Oriented Programing– Information Systems Department 12
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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