Tài liệu Lập trình hướng đối tượng - Chương 1: Giới thiệu về lập trình hướng đối tượng OOP: Lập trình hướng đối tượng với C++GV: Hà Văn SangKhoa HTTT – HVTCEmail: sanghv@gmail.comHomepage: www.hvtc.edu.vn/sanghv2008-2009Chương IGiới thiệu về lập trình hướng đối tượng OOPGiới thiệuTổng quanLập trình hướng đối tượngLập trình định hướng đối tượngObject Oriented Programming (OOP)Được xem là: Cách tiếp cận mới, hiệu quả hơnGiúp tăng năng suấtDễ dàng bảo trì, sửa đổi, nâng cấpMục đích: Giảm bớt thao tác viết trìnhMô tả chân thực thế giới thựcVậy OOP khó học hay dễ học ?1. Tổng quan về các kỹ thuật lập trình1.1 Lập trình tuyến tính1.2 Lập trình cấu trúc1.3 Lập trình môđun1.4 Nhược điểm của lập trình cấu trúc1.5 Lập trình hướng đối tượng1.1 Lập trình tuyến tínhLập trình tuyến tính :Còn gọi là lập trình phi cấu trúcGiả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ínhGồm một dãy tuần tự các câu lệnhChương trình ngắn, ít hơn 100 dòng1.1 Lập trình tuyến tính (tiếp)Nhược điểm:Không sử dụng lại được các đoạn mãKhông có khả năng kiểm soát phạm vi truy xuất ...
29 trang |
Chia sẻ: tranhong10 | Lượt xem: 1170 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Lập trình hướng đối tượng - Chương 1: 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
Lập trình hướng đối tượng với C++GV: Hà Văn SangKhoa HTTT – HVTCEmail: sanghv@gmail.comHomepage: www.hvtc.edu.vn/sanghv2008-2009Chương IGiới thiệu về lập trình hướng đối tượng OOPGiới thiệuTổng quanLập trình hướng đối tượngLập trình định hướng đối tượngObject Oriented Programming (OOP)Được xem là: Cách tiếp cận mới, hiệu quả hơnGiúp tăng năng suấtDễ dàng bảo trì, sửa đổi, nâng cấpMục đích: Giảm bớt thao tác viết trìnhMô tả chân thực thế giới thựcVậy OOP khó học hay dễ học ?1. Tổng quan về các kỹ thuật lập trình1.1 Lập trình tuyến tính1.2 Lập trình cấu trúc1.3 Lập trình môđun1.4 Nhược điểm của lập trình cấu trúc1.5 Lập trình hướng đối tượng1.1 Lập trình tuyến tínhLập trình tuyến tính :Còn gọi là lập trình phi cấu trúcGiả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ínhGồm một dãy tuần tự các câu lệnhChương trình ngắn, ít hơn 100 dòng1.1 Lập trình tuyến tính (tiếp)Nhược điểm:Không sử dụng lại được các đoạn mãKhông có khả năng kiểm soát phạm vi truy xuất dữ liệuMọi dữ liệu trong chương trình là toàn cụcDữ liệu có thể bị sửa đổi ở bất cứ vị trí nào trong chương trìnhKhông đáp ứng được việc triển khai phần mềm1.2 Lập trình cấu trúcRa đời vào những năm 70:Chương trình được chia nhỏ thành chương trình con:Thủ tục (Procedure)Hàm (Function)Các chương trình con:Độc lập với nhau và có dữ liệu riêngTrao đổi qua: tham số và biến toàn cục1.2 Lập trình cấu trúc (tiếp)Xuất hiện khái niệm trừu tượng hoáLà khả năng quan sát sự vật mà:Không quan tâm tới các chi tiết không quan trọng bên trongKhông quan tâm tới việc thực hiện như thế nàoTrừu tượng hoá dữ liệu Trừu tượng hoá thao tácNgôn ngữ lập trình cấu trúc:C, PascalFoxpro 1.3 Lập trình môđunVới lập trình môđun:Các thủ tục có chung một chức năng được nhóm lại với nhauChương trình được chia thành nhiều phần nhỏCác phần tương tác thông qua việc gọi thủ tụcMỗi mô đun có dữ liệu của riêng nó1.4 Nhược điểm của lập trình truyền thốngNhược điểm:Chương trình khó kiểm soátKhó khăn trong việc bổ sung, nâng cấp chương trìnhKhi 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 quanKhả năng sử dụng lại các đoạn mã chưa nhiềuKhông mô tả đầy đủ, trung thực hệ thống trong thực tế1.5 Lập trình hướng đối tượngLà phương pháp lập trình:Mô tả chính xác các đối tượng trong thế giớiLấy đối tượng làm nền tảng xây dựng thuật toánThiết kế xoay quanh dữ liệu của hệ thốngChương trình được chia thành các lớp đối tượngDữ liệu được đóng gói, che dấu và bảo vệĐối tượng làm việc với nhau qua thông báoChương trình được thiết kết theo cách từ dưới lên (bottom-up)1.5 Lập trình hướng đối tượng2. Một số khái niệm cơ bản2.1 Hệ thống hướng đối tượng2.2 Đối tượng2.3 Thuộc tính & Phương thức2.4 Lớp & Lớp con2.5 Lớp trừu tượng2.6 Truyền thông điệp2.7 Sự trừu tượng hoá2.8 Sự đóng gói2.9 Sự kế thừa2.10 Sự đa hình2.1 Hệ thống hướng đối tượngLà hệ thống có đặc điểm sau:Gồm tập hợp các đối tượngSự đóng gói của 2 thành phần:Dữ liệu (thuộc tính của đối tượng)Các thao tác trên dữ liệuCác đối tượng có thể kế thừa các đặc tính của đối tượng khácHoạ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ệpThông báoGửi & nhận thông báo2.2 Đối tượng (Object)Là khái niệm trừu tượng phản ánh các thực thể trong thế giới thựcCó thể là một thực thể vật lýCó thể là một khái niệm trừu tượngĐược định nghĩa là sự thể hiện của một lớpChính là các thực thể trong hệ thống hướng đối tượngMột đối tượng là sự đóng gói 2 thành phần:Trạng thái (state) hay dữ liệu Các ứng xử (behavior) hay hành vi, thao tác2.3 Thuộc tính & phương thứcThuộc tính bao gồm:Hằng, biếnTham số nội tạiThuộc tính được xác định kiểu, gồm:Kiểu cổ điểnKiểu do người dùng định nghĩaPhương thức là:Các hàm nội tại của đối tượngCó kiểu trả vềTên gọi khác: hàm thành viên2.4 Lớp (Class) & Lớp con (SubClass)Lớp: là tập hợp các đối tượng có cùng thuộc tính và hành viLà bản thiết kế hoặc bản mẫu mô tả một cấu trúc dữ liệu gồm:Các thành phần dữ liệu Các phương thứcLớp được sử dụng như kiểu dữ liệu người dùng định nghĩaLớp con:Là lớp thông thường Có thêm tính chất kế thừa đặc tính của lớp khác2.5 Lớp trừu tượngLà lớp mà nó không thể trở thành một lớp thực tế nàoĐược thiết kế nhằm tạo ra lớp có đặc tính tổng quátBản thân nó chưa có ý nghĩa nên chưa thể viết mã cho đối tượngVí dụ:Lớp hình phẳng Lớp động vật2.6 Truyền thông điệpThông điệp:Là phương tiện để đối tượng này chuyển yêu cầu tới đối tượng khác.Một thông điệp bao gồm:Handle của đối tượng đích (đối tượng chủ)Tên phương thức cần thực hiệnCác thông tin cần thiết khác (tham số)Hệ thống yêu cầu đối tượng thực hiện phương thức như sau:Gửi thông báo và tham số cho đối tượngKiểm tra tính hợp lệ của thông báoGọi thực hiện hàm tương ứng phương thức2.7 Sự trừu tượng hoáKhái niệm:Là khả năng bỏ qua hay không để ý tới các thành phần không quan trọng.Các loại trừu tượng hoá: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 trongTrừ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ệcTóm lại:Chỉ quan tâm tới đặc điểm quan trọngBỏ qua các chi tiết không liên quan2.8 Sự đóng góiKhái niệm: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.Đóng gói gồm:Bao gói: người dùng giao tiếp với hệ thống qua giao diệnChe dấu: ngăn chặn các thao tác không được phép từ bên ngoàiƯu điểm:Quản lý sự thay đổiBảo vệ dữ liệu 2.9 Sự kế thừaKhái niệm: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óĐặc điểm:Lớp nhận được có thể bổ sung các thành phầnHoặc định nghĩa là các thuộc tính của lớp chaCác loại kế thừa:Đơn kế thừaĐa kế thừa 2.10 Sự đa hìnhKhái niệm:Khả năng đưa một phương thức có cùng tên trong các lớp conThực hiện bởi:Định nghĩa lạiNạp chồngCơ chế dựa trên sự kết gán:Kết gán sớmKết gán muộn 3. Các bước thiết kế chương trình OOPCác bước chính:Xác định các dạng đối tượng (lớp)Tìm dữ liệu dùng chung, chia xẻXác định lớp cơ sở dựa vào dữ liệu dùng chungXây dựng lớp dẫn xuất từ lớp cơ sở4. Ưu điểm của OOPƯu điểm chính:Loại bỏ các đoạn mã lặp lạiTạo ra các chương trình an toàn, bảo mậtDễ dàng mở rộng và nâng cấpRút ngắn thời gian xây dựng hệ thốngTăng năng xuất và hiệu quả hơnChương trình được thiết kế theo đúng qui trình5. Một số ngôn ngữ OOPHầu hết các ngôn ngữ lập trình đều hỗ trợ OOP, có thể chia thành 2 loại:Ngôn ngữ hỗ trợ hướng đối tượng:Object C, Pascal, C++, DelphiNgôn ngữ hướng đối tượng:SmallTalk, JAVAMột số ngôn ngữ OOPhiện nay:Visual C++VB.NET, C#...6. Ứng dụng của OOPDùng để phát triển phần mềm trong nhiều lĩnh vực khác nhau:Ví dụ: hệ điều hành WindowsLĩnh vực chính:Hệ thống thời gian thựcCơ sở dữ liệu hướng đối tượngHệ siêu văn bản, đa phương tiệnTrí tuệ nhân tạoLập trình song song, mạng nơron Bài tậpSử dụng TC++ để lập trình:1. Tìm Min, Max của dãy n số nguyên, thực2. Tính tổng S=1+1/2++1/n3. 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 sort4. 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, đtbQui cách nộp bàiGửi Email tới địa chỉ: sanghv@gmail.comTiê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)
Các file đính kèm theo tài liệu này:
- Chapter1.ppt