Bài giảng lập trình hướng đối tượng

8 835 0
Bài giảng lập trình hướng đối tượng

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài giảng lập trình hướng đối tượng - Thầy Cường Học viện bưu chính viễn thông TP HCM

HỌ C VIỆ N CÔ NG NGHỆ BƯU CHÍ NH VIỄ N THÔ NG CƠ SƠÛ TẠ I TP. HỒ CHÍ MINH Bà i giảng: LẬP TRÌNH H ƯỚ N G ĐO Á I T Ư N G Tà i liệ u dù ng cho hệ Đạ i họ c ngà nh Cô ng nghệ thô ng tin & Điệ n tử – Viễ n thô ng đã đượ c Hộ i đồ ng khoa họ c Khoa Cô ng nghệ thô ng tin 2 thô ng qua ngà y 16/1/2002 (Tập 1) Biên soạn: Th.S. NGUYỄ N VIỆ T CƯỜ NG LƯU HÀ NH NỘ I BỘ Tp. Hồ Chí Minh – Nă m 2002 ii Lời nói đầu Bài giảng được biên soạn dựa trên các tài liệu của Herbert Schildt và Bjarne Stroustrup do có tính sư phạm cao và dựa trên một số tài liệu khác. Nội dung bài giảng có 12 chương, giới thiệu các khái niệm căn bản, các nền tảng của lập trình hướng đối tượng (Object-Oriented Programming) bao gồm : • tính đóng gói (Encapsulation) • tính kế thừa (Inheritance) • tính đa hình (Polymorphism) • quá tải hàm và toán tử (Function & Operator Overloading) • template và điều khiển ngoại lệ (Exception Handling) • vấn đề phát triển hệ thống hướng đối tượng • minh họa một số ứng dụng của lập trình hướng đối tượng với C++ trong môi trường DOS và Windows. Ngôn ngữ lập trình C++ được sử dụng trong bài giảng nhằm minh họa các ý tưởng của lập trình hướng đối tượng, do đó các kiến thức về C++ được trình bày đan xen trong một số chương giúp sinh viên dễ dàng lónh hội các khái niệm khá trừu tượng của lập trình hướng đối tượng. Bài giảng không có tham vọng đi sâu mọi khía cạnh của lập trình hướng đối tượng, chỉ trình bày các kiến thức căn bản và qua các ví dụ minh họa hy vọng sẽ giúp ích cho sinh viên ngành công nghệ thông tin và điện tử viễn thông bước đầu tìm hiểu thế giới lập trình. Các ví dụ minh họa đã chạy tốt trên các trình biên dòch Borland C++ 4.5 hoặc Visual C++ 6.0 Bài giảng được phân làm hai tập, tập 1 từ chương 1 đến chương 8, tập 2 từ chương 9 đến chương 12. Rất mong các đồng nghiệp và các sinh viên đóng góp ý kiến xây dựng để bài giảng được hoàn thiện hơn trong các lần soạn thảo về sau. Tháng 8 năm 2001 Th. S. Nguyễn Việt Cường E-mail: nvc@ptithcm.edu.vn iii Mục lục Tập 1 Chương 1 Tổng quan về Lập trình hướng đối tượng I. Vài nét về sự phát triển của các ngôn ngữ lập trình 1 II. Các khái niệm cơ bản của lập trình hướng đối tượng 4 1. Lớp và Đối tượng (Class & Object) .4 2. Thông báo (Message) .5 3. Tính đóng gói (Encapsulation) .5 4. Tính kế thừa (Inheritance) 6 5. Tính đa hình (Polymorphism) .7 III. Tổng quan về ngôn ngữ lập trình hướng đối tượng C++ .7 1. Xuất/Nhập (Console I/O) .7 2. Chú thích (Comment) .10 3. Khái niệm về quá tải hàm (Function Overloading) 11 4. Các từ khoá (Keywords) trong C++ 14 Chương 2 Lớp, Đối tượng và Tính đóng gói .15 I. Lớp .17 II. Hàm tạo, hàm hủy 22 III. Tham số của hàm tạo .30 IV. Nội tuyến tự động 37 V. Gán đối tượng .39 VI. Truyền các đối tượng sang hàm 45 VII. Trả đối tượng từ hàm 53 VIII. Hàm friend 56 IX. Bài tập chương 2 .62 Chương 3 Mảng , Con trỏ và Tham chiếu .67 I. Mảng các đối tượng 69 II. Con trỏ đối tượng 72 iv III. Con trỏ this 75 IV. Toán tử new và delete 78 V. Tham chiếu (reference) 86 VI. Truyền tham chiếu cho đối tượng .91 VII. Trả về các tham chiếu .95 VIII. Các tham chiếu độc lập và các hạn chế 98 IX. Bài tập chương 3 .100 Chương 4 Quá tải hàm .103 I. Quá tải hàm tạo .105 II. Hàm tạo bản sao 109 III. Sử dụng các đối số mặc đònh (default argument) .119 IV. Sự quá tại và tính không xác đònh (ambiguity) 126 V. Điạ chỉ của hàm quá tải .130 VI. Bài tập chương 4 132 Chương 5 Quá tải toán tử .135 I. Quá tải toán tử 137 II. Quá tải toán tử nhò nguyên 138 III. Quá tải toán tử quan hệ & luận lý .144 IV. Quá tải toán tử đơn nguyên .146 V. Hàm toán tử friend .149 VI. Toán tử gán 155 VII. Bài tập chương 5 158 Chương 6 Tính kế thừa .163 I. Giới thiệu tính kế thừa .165 II. Điều khiển truy cập lớp cơ sở 171 III. Sử dụng các thành viên được bảo vệ .176 IV. Hàm tạo, hàm hủy và tính kế thừa 181 V. Tính đa kế thừa 189 VI. Lớp cơ sở ảo .196 VII. Bài tập chương 6 201 v Chương 7 Hệ thống Nhập/Xuất C++ .207 I. Cơ sở Nhập/Xuất C++ .209 II. Nhập/Xuất có đònh dạng 210 III. Sử dụng width(), precision() và fill() .218 IV. Sử dụng bộ thao tác Nhập/Xuất . 220 V. Tạo bộ chèn . 223 VI. Tạo bộ chiết .230 VII. Bài tập chương 7 234 Chương 8 Nhập/Xuất C++ nâng cao 237 I. Tạo Bộ thao tác Nhập/Xuất .239 II. Nhập/Xuất File 243 III. Nhập/Xuất File nhò phân không đònh dạng .251 IV. Các hàm Nhập/Xuất nhò phân .258 V. Truy cập ngẫu nhiên 261 VI. Kiểm tra trạng thái Nhập/Xuất 265 VII. Nhập/Xuất theo đơn đặt hàng và các File .269 VIII. Nhập/Xuất theo mảng .272 IX. Bài tập chương 8 277 Tập 2 Chương 9 Tính đa hình 281 I. Con trỏ và Lớp dẫn xuất 283 II. Dẫn nhập các hàm ảo 285 III. Các hàm ảo thuần túy 295 IV. Áp dụng đa hình 299 V. Bài tập chương 9 309 Chương 10 Template và điều khiển ngoại lệ .311 I. Hàm template 313 II. Lớp template .319 vi III. Điều khiển ngoại lệ .326 IV. Biến tónh 339 V. Từ khoá extern và asm 344 VI. Hàm chuyển kiểu .346 VII. Những khác biệt giữa C và C++ 349 VIII. Bài tập chương 10 350 Chương 11 Phát triển các hệ thống hướng đối tượng 351 I. Giới thiệu .353 II. Các mô hình hướng-thủ tục 354 III. Các công cụ phát triển hướng-thủ tục 357 IV. Mô hình hướng đối tượng .359 V. Các ký hiệu và đồ thò hướng đối tượng 361 VI. Các bước phân tích hướng đối tượng .365 VII. Các bước thiết kế hướng đối tượng 371 VIII. Cài đặt .378 IX. Mô hình nguyên mẫu .379 X. Tóm tắt 380 XI. Bài tập chương 11 381 Chương 12 Một số ứng dụng OOP 383 I. Ứùng dụng trên môi trường DOS .385 1. Sorted container example source file .385 2. Text cross referencing example .389 3. Updates and displays the contents of a mailing list 398 II. Ứùng dụng trên môi trường WINDOWS .411 1. Instructions for the IDE example MULTITRG.IDE .411 2. Common Dialogs example in C 419 3. Demo True Type fonts 427 4. Demo sound APIs 447 5. Creating a window application (TODO) 456 III. Đồ án môn học .479 vii Tài liệu tham khảo Sách giáo khoa [1] Bjarne Stroustrup, What is “Object-Oriented Programming” ? AT&T Bell Lab., 1991 (revised version), p1-21 [2] Menachem Bazian, Fundamentals of Object-Oriented Programming, Microsoft Corp., 1995. [3] Herbert Schildt, Teach Yourself C++, 3rd Edition, McGraw-Hill, 1997. [4] H. M. Deitel & P. J. Deitel C++ How to Program, 2nd edition, Prentice Hall, 1998 [5] E. Balagurusamy, Object-Oriented Programming with C++, Tata McGraw-Hill, 1997. Sách tham khảo [6] Herbert Schildt, C++ Nuts & Bolt : for Experienced Programmers, McGraw-Hill, 1997. [7] Herbert Schildt, C/C++ Programmer's Reference, McGraw-Hill, 1997. viii [8] Bjarne Stroustrup, The C++ Programming Language, (3rd Edition) Addison-Wesley, 1997 [9] Bjarne Stroustrup, Why C++ is not just an Object-Oriented Programming Language, AT&T Bell Lab., Murray Hill, New Jersay, 1995 , 13 pages [10] Bjarne Stroustrup, An Overview of the C++ Programming Language The Handbook of Object Technology, CRC Press LLC, Boca Raton, 1999, 23 pages [11] Bjarne Stroustrup, Learning Standard C++ as a New Language, AT&T Bell Lab., 1999, 11 pages [12] Jeri R. Hanly, Essential C++ for Engineers and Scientists, Addison-Wesley, 1997 [13] Mark A. Terrible, Practical C++, McGraw-Hill, 1994. [14] Gordon Dodrill, C++ Tutorial, Coronado Enterprises, 1994. [15] IEEE Computer, “Open Channel” Interview with Bjarne Stroustrup, IEEE, 1998. [16] C. Thomas Wu, An Introduction to Object-Oriented Programming with JAVA, McGraw-Hill, 1999. [17] Borland International, Inc. Borland C++, version 4.5, 1994. . niệm khá trừu tượng của lập trình hướng đối tượng. Bài giảng không có tham vọng đi sâu mọi khía cạnh của lập trình hướng đối tượng, chỉ trình bày các. triển hệ thống hướng đối tượng • minh họa một số ứng dụng của lập trình hướng đối tượng với C++ trong môi trường DOS và Windows. Ngôn ngữ lập trình C++ được

Ngày đăng: 21/08/2012, 15:34

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan