Lập trình hướng đối tượng - Chương mở đầu
lượt xem 5
download
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
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình hướng đối tượng - Chương mở đầu
- HOÏ C VIEÄ N COÂ NG NGHEÄ BÖU CHÍ NH VIEÃ N THOÂ NG CÔ SÔÛ TAÏ I TP. HOÀ CHÍ MINH Baø i giaûng: LAÄP TRÌNH HÖ Ù NG Ñ I TÖ Ï NG Ô OÁ Ô Taø i lieä u duø ng cho heä Ñaï i hoï c ngaø nh Coâ ng ngheä thoâ ng tin & Ñieä n töû – Vieã n thoâ ng ñaõ ñöôï c Hoä i ñoà ng khoa hoï c Khoa Coâ ng ngheä thoâ ng tin 2 thoâ ng qua ngaø y 16/1/2002 (Taäp 1) Bieân soaïn: Th.S. NGUYEÃ N VIEÄ T CÖÔØ NG LÖU HAØ NH NOÄ I BOÄ Tp. Hoà Chí Minh – Naê m 2002
- Lôøi noùi ñaàu Baøi giaûng ñöôïc bieân soaïn döïa treân caùc taøi lieäu cuûa Herbert Schildt vaø Bjarne Stroustrup do coù tính sö phaïm cao vaø döïa treân moät soá taøi lieäu khaùc. Noäi dung baøi giaûng coù 12 chöông, giôùi thieäu caùc khaùi nieäm caên baûn, caùc neàn taûng cuûa laäp trình höôùng ñoái töôïng (Object-Oriented Programming) bao goàm : • tính ñoùng goùi (Encapsulation) • tính keá thöøa (Inheritance) • tính ña hình (Polymorphism) • quaù taûi haøm vaø toaùn töû (Function & Operator Overloading) • template vaø ñieàu khieån ngoaïi leä (Exception Handling) • vaán ñeà phaùt trieån heä thoáng höôùng ñoái töôïng • minh hoïa moät soá öùng duïng cuûa laäp trình höôùng ñoái töôïng vôùi C++ trong moâi tröôøng DOS vaø Windows. Ngoân ngöõ laäp trình C++ ñöôïc söû duïng trong baøi giaûng nhaèm minh hoïa caùc yù töôûng cuûa laäp trình höôùng ñoái töôïng, do ñoù caùc kieán thöùc veà C++ ñöôïc trình baøy ñan xen trong moät soá chöông giuùp sinh vieân deã daøng lónh hoäi caùc khaùi nieäm khaù tröøu töôïng cuûa laäp trình höôùng ñoái töôïng. Baøi giaûng khoâng coù tham voïng ñi saâu moïi khía caïnh cuûa laäp trình höôùng ñoái töôïng, chæ trình baøy caùc kieán thöùc caên baûn vaø qua caùc ví duï minh hoïa hy voïng seõ giuùp ích cho sinh vieân ngaønh coâng ngheä thoâng tin vaø ñieän töû vieãn thoâng böôùc ñaàu tìm hieåu theá giôùi laäp trình. Caùc ví duï minh hoïa ñaõ chaïy toát treân caùc trình bieân dòch Borland C++ 4.5 hoaëc Visual C++ 6.0 Baøi giaûng ñöôïc phaân laøm hai taäp, taäp 1 töø chöông 1 ñeán chöông 8, taäp 2 töø chöông 9 ñeán chöông 12. Raát mong caùc ñoàng nghieäp vaø caùc sinh vieân ñoùng goùp yù kieán xaây döïng ñeå baøi giaûng ñöôïc hoaøn thieän hôn trong caùc laàn soaïn thaûo veà sau. Thaùng 8 naêm 2001 Th. S. Nguyeãn Vieät Cöôøng E-mail: nvc@ptithcm.edu.vn ii
- Muïc luïc Taäp 1 Toång quan veà Laäp trình höôùng ñoái töôïng Chöông 1 I. Vaøi neùt veà söï phaùt trieån cuûa caùc ngoân ngöõ laäp trình............................ 1 II. Caùc khaùi nieäm cô baûn cuûa laäp trình höôùng ñoái töôïng .......................... 4 1. Lôùp vaø Ñoái töôïng (Class & Object) ......................................... 4 2. Thoâng baùo (Message)............................................................... 5 3. Tính ñoùng goùi (Encapsulation) ................................................. 5 4. Tính keá thöøa (Inheritance)........................................................ 6 5. Tính ña hình (Polymorphism) ................................................... 7 III. Toång quan veà ngoân ngöõ laäp trình höôùng ñoái töôïng C++ ..................... 7 1. Xuaát/Nhaäp (Console I/O) ......................................................... 7 2. Chuù thích (Comment) ............................................................. 10 3. Khaùi nieäm veà quaù taûi haøm (Function Overloading)................ 11 4. Caùc töø khoaù (Keywords) trong C++........................................ 14 Lôùp, Ñoái töôïng vaø Tính ñoùng goùi ................................. 15 Chöông 2 I. Lôùp ................................................................................................. 17 II. Haøm taïo, haøm huûy .......................................................................... 22 III. Tham soá cuûa haøm taïo ..................................................................... 30 IV. Noäi tuyeán töï ñoäng .......................................................................... 37 V. Gaùn ñoái töôïng ................................................................................. 39 VI. Truyeàn caùc ñoái töôïng sang haøm ...................................................... 45 VII. Traû ñoái töôïng töø haøm ...................................................................... 53 VIII. Haøm friend...................................................................................... 56 IX. Baøi taäp chöông 2 ............................................................................. 62 Maûng , Con troû vaø Tham chieáu ....................................... 67 Chöông 3 I. Maûng caùc ñoái töôïng ........................................................................ 69 II. Con troû ñoái töôïng ............................................................................ 72 iii
- III. Con troû this......................................................................................75 IV. Toaùn töû new vaø delete ....................................................................78 V. Tham chieáu (reference) ..................................................................86 VI. Truyeàn tham chieáu cho ñoái töôïng ...................................................91 VII. Traû veà caùc tham chieáu .....................................................................95 VIII. Caùc tham chieáu ñoäc laäp vaø caùc haïn cheá ..........................................98 IX. Baøi taäp chöông 3 ...........................................................................100 Quaù taûi haøm .....................................................................103 Chöông 4 I. Quaù taûi haøm taïo ...............................................................................105 II. Haøm taïo baûn sao ..............................................................................109 III. Söû duïng caùc ñoái soá maëc ñònh (default argument) ...........................119 IV. Söï quaù taïi vaø tính khoâng xaùc ñònh (ambiguity)................................126 V. Ñiaï chæ cuûa haøm quaù taûi ...................................................................130 VI. Baøi taäp chöông 4 ..............................................................................132 Quaù taûi toaùn töû .................................................................135 Chöông 5 I. Quaù taûi toaùn töû ................................................................................137 II. Quaù taûi toaùn töû nhò nguyeân ..............................................................138 III. Quaù taûi toaùn töû quan heä & luaän lyù ...................................................144 IV. Quaù taûi toaùn töû ñôn nguyeân .............................................................146 V. Haøm toaùn töû friend...........................................................................149 VI. Toaùn töû gaùn ......................................................................................155 VII. Baøi taäp chöông 5 ..............................................................................158 Tính keá thöøa ...................................................................163 Chöông 6 I. Giôùi thieäu tính keá thöøa .....................................................................165 II. Ñieàu khieån truy caäp lôùp cô sôû..........................................................171 III. Söû duïng caùc thaønh vieân ñöôïc baûo veä ...............................................176 IV. Haøm taïo, haøm huûy vaø tính keá thöøa ..................................................181 V. Tính ña keá thöøa ................................................................................189 VI. Lôùp cô sôû aûo.....................................................................................196 VII. Baøi taäp chöông 6 ..............................................................................201 iv
- Heä thoáng Nhaäp/Xuaát C++ ............................................. 207 Chöông 7 I. Cô sôû Nhaäp/Xuaát C++ ..................................................................... 209 II. Nhaäp/Xuaát coù ñònh daïng.................................................................. 210 III. Söû duïng width(), precision() vaø fill()............................................... 218 IV. Söû duïng boä thao taùc Nhaäp/Xuaát....................................................... 220 V. Taïo boä cheøn ..................................................................................... 223 VI. Taïo boä chieát ..................................................................................... 230 VII. Baøi taäp chöông 7.............................................................................. 234 Nhaäp/Xuaát C++ naâng cao .............................................. 237 Chöông 8 I. Taïo Boä thao taùc Nhaäp/Xuaát ............................................................. 239 II. Nhaäp/Xuaát File ................................................................................ 243 III. Nhaäp/Xuaát File nhò phaân khoâng ñònh daïng ..................................... 251 IV. Caùc haøm Nhaäp/Xuaát nhò phaân ......................................................... 258 V. Truy caäp ngaãu nhieân ........................................................................ 261 VI. Kieåm tra traïng thaùi Nhaäp/Xuaát........................................................ 265 VII. Nhaäp/Xuaát theo ñôn ñaët haøng vaø caùc File ....................................... 269 VIII. Nhaäp/Xuaát theo maûng ..................................................................... 272 IX. Baøi taäp chöông 8.............................................................................. 277 Taäp 2 Tính ña hình .................................................................... 281 Chöông 9 I. Con troû vaø Lôùp daãn xuaát ................................................................ 283 II. Daãn nhaäp caùc haøm aûo ...................................................................... 285 III. Caùc haøm aûo thuaàn tuùy ...................................................................... 295 IV. AÙp duïng ña hình .............................................................................. 299 V. Baøi taäp chöông 9.............................................................................. 309 Template vaø ñieàu khieån ngoaïi leä ................................. 311 Chöông 10 I. Haøm template.................................................................................. 313 II. Lôùp template ................................................................................... 319 v
- III. Ñieàu khieån ngoaïi leä .........................................................................326 IV. Bieán tónh ..........................................................................................339 V. Töø khoaù extern vaø asm ....................................................................344 VI. Haøm chuyeån kieåu.............................................................................346 VII. Nhöõng khaùc bieät giöõa C vaø C++ ......................................................349 VIII. Baøi taäp chöông 10 ............................................................................350 Phaùt trieån caùc heä thoáng höôùng ñoái töôïng......................351 Chöông 11 I. Giôùi thieäu .........................................................................................353 II. Caùc moâ hình höôùng-thuû tuïc..............................................................354 III. Caùc coâng cuï phaùt trieån höôùng-thuû tuïc ..............................................357 IV. Moâ hình höôùng ñoái töôïng.................................................................359 V. Caùc kyù hieäu vaø ñoà thò höôùng ñoái töôïng............................................361 VI. Caùc böôùc phaân tích höôùng ñoái töôïng ...............................................365 VII. Caùc böôùc thieát keá höôùng ñoái töôïng ..................................................371 VIII. Caøi ñaët .............................................................................................378 IX. Moâ hình nguyeân maãu .......................................................................379 X. Toùm taét ............................................................................................380 XI. Baøi taäp chöông 11 ............................................................................381 Moät soá öùng duïng OOP ....................................................383 Chöông 12 I. ÖÙùng duïng treân moâ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 duïng treân moâ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. Ñoà aùn moân hoïc.................................................................................479 vi
- Taøi lieäu tham khaûo Saùch giaù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. Saùch tham khaûo [6] Herbert Schildt, C++ Nuts & Bolt : for Experienced Programmers, McGraw-Hill, 1997. [7] Herbert Schildt, C/C++ Programmer's Reference, McGraw-Hill, 1997. vii
- [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. viii
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình lập trình hướng đối tượng - PGS TS Trần Đình Quế & KS Nguyễn Mạnh Hùng
173 p | 2241 | 1086
-
Tự học lập trình hướng đối tượng và lập trình cơ sở dữ liệu C part 1
40 p | 1009 | 424
-
Bài giảng Lập Trình Hướng Đối Tượng
98 p | 466 | 239
-
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1
173 p | 494 | 218
-
Lập trình hướng đối tượng với C++ - NXB KHKT
341 p | 355 | 130
-
Giáo trình Lập trình hướng đối tượng trong Java
33 p | 142 | 30
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p | 140 | 9
-
Bài giảng môn Lập trình hướng đối tượng - Chương 1: Tổng quan về cách tiếp cận hướng đối tượng
20 p | 147 | 9
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 80 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 119 | 8
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 100 | 6
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 99 | 5
-
Bài giảng Lập trình hướng đối tượng 1: Chương 0 - ThS. Thái Kim Phụng
15 p | 60 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 11 | 4
-
Giáo trình Lập trình hướng đối tượng - Nghề: Lập trình máy tính - CĐ Kỹ Thuật Công Nghệ Bà Rịa-Vũng Tàu
68 p | 48 | 3
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 15 | 3
-
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 2: Phương pháp lập trình hướng đối tượng
35 p | 8 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn