Bài giảng môn học Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp
Số trang: 120
Loại file: pdf
Dung lượng: 973.76 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 10 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Lập trình hướng đối tượng - Chương 2 trang bị cho người học những kiến về đối tượng và lớp. Các nội dung chính trong chương này gồm có: Đối tượng và lớp, cài đặt lớp trong C++, thiết lập và huỷ bỏ đối tượng, giao diện và chi tiết cài đặt, các nguyên tắc xây dựng lớp, một số ví dụ về lớp. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng môn học Lập trình hướng đối tượng - Chương 2: Đối tượng và lớpLaäp Trình Höôùng Ñoái Töôïng 45 LT+30TH Chöông 2 – Ñoái töôïng vaø Lôùp1. Ñoái töôïng vaø lôùp2. Caøi ñaët lôùp trong C++3. Thieát laäp vaø huyû boû ñoái töôïng4. Giao dieän vaø chi tieát caøi ñaët5. Caùc nguyeân taéc xaây döïng lôùp6. Moät soá ví duï veà lôùp 2.1. Ñoái töôïng vaø lôùp Ta ñònh nghóa moät ñoái töôïng laø moät caùi gì ñoù coù yù nghóa cho vaán ñeà ta quan taâm. Ñoái töôïng phuïc vuï hai muïc ñích: Giuùp hieåu roõ theá giôùi thöïc vaø cung caáp cô sôû cho vieäc caøi ñaët trong maùy. Moãi ñoái töôïng coù moät neùt nhaän daïng ñeå phaân bieät noù vôùi caùc ñoái töôïng khaùc. Neùt nhaän daïng mang yù nghóa caùc ñoái töôïng ñöôïc phaân bieät vôùi nhau do söï toàn taïi voán coù cuûa chuùng chöù khoâng phaûi caùc tính chaát maø chuùng coù. Chöông 2. Lớp 3 Ñoái töôïng vaø lôùp Caùc ñoái töôïng coù caùc ñaëc tính töông töï nhau ñöôïc gom chung laïi thaønh lôùp ñoái töôïng. Ví duï Ngöôøi laø moät lôùp ñoái töôïng. Moät lôùp ñoái töôïng ñöôïc ñaëc tröng baèng caùc thuoäc tính, vaø caùc hoaït ñoäng (haønh vi). Moät thuoäc tính (attribute) laø moät giaù trò döõ lieäu cho moãi ñoái töôïng trong lôùp. Teân, Tuoåi, Caân naëng laø caùc thuoäc tính cuûa Ngöôøi. Moät thao taùc (operation) laø moät haøm hay moät pheùp bieán ñoåi coù theå aùp duïng vaøo hay aùp duïng bôûi caùc ñoái töôïng trong lôùp. Chöông 2. Lớp 4 Ñoái töôïng vaø lôùp Cuøng moät thao taùc coù theå ñöôïc aùp duïng cho nhieàu lôùp ñoái töôïng khaùc nhau, moät thao taùc nhö vaäy ñöôïc goïi laø coù tính ña daïng (polymorphism). Moãi thao taùc treân moãi lôùp ñoái töôïng cuï theå töông öùng vôùi moät caøi ñaët cuï theå khaùc nhau. Moät caøi ñaët nhö vaäy ñöôïc goïi laø moät phöông thöùc (method). Moät ñoái töôïng cuï theå thuoäc moät lôùp ñöôïc goïi laø moät theå hieän (instance) cuûa lôùp ñoù. Joe Smith, 25 tuoåi, naëng 58kg, laø moät theå hieän cuûa lôùp ngöôøi. Chöông 2. Lớp 5 Sô ñoà ñoái töôïng Ta duøng sô ñoà ñoái töôïng ñeå moâ taû caùc lôùp ñoái töôïng. Sô ñoà ñoái töôïng bao goàm sô ñoà lôùp vaø sô ñoà theå hieän. Sô ñoà lôùp moâ taû caùc lôùp ñoái töôïng trong heä thoáng, moät lôùp ñoái töôïng ñöôïc dieãn taû baèng moät hình chöõ nhaät coù 3 phaàn: phaàn ñaàu chæ teân lôùp, phaàn thöù hai moâ taû caùc thuoäc tính vaø phaàn thöù ba moâ taû caùc thao taùc cuûa caùc ñoái töôïng trong lôùp ñoù. Chöông 2. Lớp 6 Sô ñoà lôùp vaø sô ñoà theå hieän Teân lôùp Sinh vieân (Sinh vieân) Hoï teân Nguyeãn Vaên A Naêm sinh 1984Thuoäc tính Maõ soá 0610234T Ñieåm TB 9.2 Ñi hoïcThao taùc Ñi thi Phaân loaïi Sô ñoà lôùp Sô ñoà theå hieän Chöông 2. Lớp 7 2.2. Caùc thaønh phaàn cuûa lôùp Moät kieåu döõ lieäu laø moät bieåu dieãn cuï theå moät khaùi nieäm trong thöïc teá. Ví duï kieåu int laø moät bieåu dieãn cuï theå cuûa khaùi nieäm soá nguyeân trong toaùn hoïc. Trong C++, caùc kieåu döõ lieäu coù saün (built-in data types) :int, long, float, double, char... cho pheùp kieåm tra luùc bieân dòch vaø phaùt sinh maõ chöông trình toái öu. Caùc kieåu döõ lieäu naøy cung caáp moät giao dieän töï nhieân ñoäc laäp vôùi phaàn caøi ñaët. Chöông 2. Lớp 8 2.2. Caùc thaønh phaàn cuûa lôùp Lôùp trong C++ laø caøi ñaët cuûa kieåu döõ lieäu tröøu töôïng do ngöôøi söû duïng ñònh nghóa, cho pheùp keát hôïp döõ lieäu, caùc pheùp toaùn, caùc haøm lieân quan ñeå taïo ra moät ñôn vò chöông trình duy nhaát. Caùc lôùp naøy coù ñaày ñuû öu ñieåm vaø tieän lôïi nhö caùc kieåu döõ lieäu noäi taïi. Lôùp taùch rôøi phaàn giao dieän (chæ lieân quan vôùi ngöôøi söû duïng) vaø phaàn caøi ñaët lôùp. Lôùp trong C++ ñöôïc caøi ñaët söû duïng töø khoaù struct vaø class. Chöông 2. Lớp 9Ví duï so saùnh: Xaây döïng kieåu döõ lieäu stack.1. Caùch tieáp caän coå ñieån: // Stack1.cpp : //Dung cau truc va ham toan cuc #include typedef int bool; typedef int Item; const bool false = 0, true = 1; struct Stack { Item *st, *top; int size; }; Chöông 2. Lớp 10Ví duï so saùnh (tt) void StackInit(Stack *ps, int sz) { ps->st = ps->top = new Item[ps->size=sz]; } void StackCleanUp(Stack *ps) { delete [] ps->st; } bool StackFull(Stack *ps) { return (ps->top - ps->st >= ps->size); } Chöông 2. Lớp 11Ví duï so saùnh (tt) bool StackEmpty(Stack *ps) { return (ps->top st); } bool StackPush(Stack *ps, Item x) { if (StackFull(ps)) return false; *ps->top++ = x; return true; } Chöông 2. Lớp 12Ví duï so saùnh (tt) bool StackPop(Stack *ps, Item *px) { if (StackEmpty(ps)) return false; *px = *--ps->top; return true; } Chöông 2. Lớp 13Ví duï so saùnh (tt) void XuatHe16(long n) { static char hTab[] = “0123456789ABCDEF”; Stack s; StackInit(&s,8); int x; do { StackPush(&s, n%16); n /= 16; } while(n); while(StackPop(&s,&x)) cout Ví duï so saùnh (tt)Nhaän xeùt: Giaûi quyeát ñöôïc vaán ñeà. Khai baùo caáu truùc döõ lieäu naèm rieâng, caùc haøm xöû lyù döõ lieäu naèm rieâng ôû moät nôi khaùc. Do ñoù khoù theo doõi quaûn lyù khi heä thoáng lôùn. Vì vaäy khoù baûo trì. Moïi thao taùc ñeàu coù tham soá ñaàu tieân laø con troû ñeán ñoái ...
Nội dung trích xuất từ tài liệu:
Bài giảng môn học Lập trình hướng đối tượng - Chương 2: Đối tượng và lớpLaäp Trình Höôùng Ñoái Töôïng 45 LT+30TH Chöông 2 – Ñoái töôïng vaø Lôùp1. Ñoái töôïng vaø lôùp2. Caøi ñaët lôùp trong C++3. Thieát laäp vaø huyû boû ñoái töôïng4. Giao dieän vaø chi tieát caøi ñaët5. Caùc nguyeân taéc xaây döïng lôùp6. Moät soá ví duï veà lôùp 2.1. Ñoái töôïng vaø lôùp Ta ñònh nghóa moät ñoái töôïng laø moät caùi gì ñoù coù yù nghóa cho vaán ñeà ta quan taâm. Ñoái töôïng phuïc vuï hai muïc ñích: Giuùp hieåu roõ theá giôùi thöïc vaø cung caáp cô sôû cho vieäc caøi ñaët trong maùy. Moãi ñoái töôïng coù moät neùt nhaän daïng ñeå phaân bieät noù vôùi caùc ñoái töôïng khaùc. Neùt nhaän daïng mang yù nghóa caùc ñoái töôïng ñöôïc phaân bieät vôùi nhau do söï toàn taïi voán coù cuûa chuùng chöù khoâng phaûi caùc tính chaát maø chuùng coù. Chöông 2. Lớp 3 Ñoái töôïng vaø lôùp Caùc ñoái töôïng coù caùc ñaëc tính töông töï nhau ñöôïc gom chung laïi thaønh lôùp ñoái töôïng. Ví duï Ngöôøi laø moät lôùp ñoái töôïng. Moät lôùp ñoái töôïng ñöôïc ñaëc tröng baèng caùc thuoäc tính, vaø caùc hoaït ñoäng (haønh vi). Moät thuoäc tính (attribute) laø moät giaù trò döõ lieäu cho moãi ñoái töôïng trong lôùp. Teân, Tuoåi, Caân naëng laø caùc thuoäc tính cuûa Ngöôøi. Moät thao taùc (operation) laø moät haøm hay moät pheùp bieán ñoåi coù theå aùp duïng vaøo hay aùp duïng bôûi caùc ñoái töôïng trong lôùp. Chöông 2. Lớp 4 Ñoái töôïng vaø lôùp Cuøng moät thao taùc coù theå ñöôïc aùp duïng cho nhieàu lôùp ñoái töôïng khaùc nhau, moät thao taùc nhö vaäy ñöôïc goïi laø coù tính ña daïng (polymorphism). Moãi thao taùc treân moãi lôùp ñoái töôïng cuï theå töông öùng vôùi moät caøi ñaët cuï theå khaùc nhau. Moät caøi ñaët nhö vaäy ñöôïc goïi laø moät phöông thöùc (method). Moät ñoái töôïng cuï theå thuoäc moät lôùp ñöôïc goïi laø moät theå hieän (instance) cuûa lôùp ñoù. Joe Smith, 25 tuoåi, naëng 58kg, laø moät theå hieän cuûa lôùp ngöôøi. Chöông 2. Lớp 5 Sô ñoà ñoái töôïng Ta duøng sô ñoà ñoái töôïng ñeå moâ taû caùc lôùp ñoái töôïng. Sô ñoà ñoái töôïng bao goàm sô ñoà lôùp vaø sô ñoà theå hieän. Sô ñoà lôùp moâ taû caùc lôùp ñoái töôïng trong heä thoáng, moät lôùp ñoái töôïng ñöôïc dieãn taû baèng moät hình chöõ nhaät coù 3 phaàn: phaàn ñaàu chæ teân lôùp, phaàn thöù hai moâ taû caùc thuoäc tính vaø phaàn thöù ba moâ taû caùc thao taùc cuûa caùc ñoái töôïng trong lôùp ñoù. Chöông 2. Lớp 6 Sô ñoà lôùp vaø sô ñoà theå hieän Teân lôùp Sinh vieân (Sinh vieân) Hoï teân Nguyeãn Vaên A Naêm sinh 1984Thuoäc tính Maõ soá 0610234T Ñieåm TB 9.2 Ñi hoïcThao taùc Ñi thi Phaân loaïi Sô ñoà lôùp Sô ñoà theå hieän Chöông 2. Lớp 7 2.2. Caùc thaønh phaàn cuûa lôùp Moät kieåu döõ lieäu laø moät bieåu dieãn cuï theå moät khaùi nieäm trong thöïc teá. Ví duï kieåu int laø moät bieåu dieãn cuï theå cuûa khaùi nieäm soá nguyeân trong toaùn hoïc. Trong C++, caùc kieåu döõ lieäu coù saün (built-in data types) :int, long, float, double, char... cho pheùp kieåm tra luùc bieân dòch vaø phaùt sinh maõ chöông trình toái öu. Caùc kieåu döõ lieäu naøy cung caáp moät giao dieän töï nhieân ñoäc laäp vôùi phaàn caøi ñaët. Chöông 2. Lớp 8 2.2. Caùc thaønh phaàn cuûa lôùp Lôùp trong C++ laø caøi ñaët cuûa kieåu döõ lieäu tröøu töôïng do ngöôøi söû duïng ñònh nghóa, cho pheùp keát hôïp döõ lieäu, caùc pheùp toaùn, caùc haøm lieân quan ñeå taïo ra moät ñôn vò chöông trình duy nhaát. Caùc lôùp naøy coù ñaày ñuû öu ñieåm vaø tieän lôïi nhö caùc kieåu döõ lieäu noäi taïi. Lôùp taùch rôøi phaàn giao dieän (chæ lieân quan vôùi ngöôøi söû duïng) vaø phaàn caøi ñaët lôùp. Lôùp trong C++ ñöôïc caøi ñaët söû duïng töø khoaù struct vaø class. Chöông 2. Lớp 9Ví duï so saùnh: Xaây döïng kieåu döõ lieäu stack.1. Caùch tieáp caän coå ñieån: // Stack1.cpp : //Dung cau truc va ham toan cuc #include typedef int bool; typedef int Item; const bool false = 0, true = 1; struct Stack { Item *st, *top; int size; }; Chöông 2. Lớp 10Ví duï so saùnh (tt) void StackInit(Stack *ps, int sz) { ps->st = ps->top = new Item[ps->size=sz]; } void StackCleanUp(Stack *ps) { delete [] ps->st; } bool StackFull(Stack *ps) { return (ps->top - ps->st >= ps->size); } Chöông 2. Lớp 11Ví duï so saùnh (tt) bool StackEmpty(Stack *ps) { return (ps->top st); } bool StackPush(Stack *ps, Item x) { if (StackFull(ps)) return false; *ps->top++ = x; return true; } Chöông 2. Lớp 12Ví duï so saùnh (tt) bool StackPop(Stack *ps, Item *px) { if (StackEmpty(ps)) return false; *px = *--ps->top; return true; } Chöông 2. Lớp 13Ví duï so saùnh (tt) void XuatHe16(long n) { static char hTab[] = “0123456789ABCDEF”; Stack s; StackInit(&s,8); int x; do { StackPush(&s, n%16); n /= 16; } while(n); while(StackPop(&s,&x)) cout Ví duï so saùnh (tt)Nhaän xeùt: Giaûi quyeát ñöôïc vaán ñeà. Khai baùo caáu truùc döõ lieäu naèm rieâng, caùc haøm xöû lyù döõ lieäu naèm rieâng ôû moät nôi khaùc. Do ñoù khoù theo doõi quaûn lyù khi heä thoáng lôùn. Vì vaäy khoù baûo trì. Moïi thao taùc ñeàu coù tham soá ñaàu tieân laø con troû ñeán ñoái ...
Tìm kiếm theo từ khóa liên quan:
Lập trình hướng đối tượng Bài giảng Lập trình hướng đối tượng Thiết lập đối tượng Hủy bỏ đối tượng Thành phần của lớp Hàm thành phầnGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 271 0 0 -
101 trang 199 1 0
-
14 trang 133 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 112 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
265 trang 77 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 75 0 0 -
33 trang 67 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 51 0 0