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
lượt xem 6
download
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.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: 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
- Laäp Trình Höôùng Ñoái Töôïng 45 LT+30TH
- Chöông 2 – Ñoái töôïng vaø Lôùp 1. Ñoái töôïng vaø lôùp 2. Caøi ñaët lôùp trong C++ 3. Thieát laäp vaø huyû boû ñoái töôïng 4. Giao dieän vaø chi tieát caøi ñaët 5. Caùc nguyeân taéc xaây döïng lôùp 6. 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 1984 Thuoäc tính Maõ soá 0610234T Ñieåm TB 9.2 Ñi hoïc Thao 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 9
- Ví 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 10
- Ví 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 11
- Ví 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 12
- Ví 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 13
- Ví 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öôïng caàn thao taùc. Tö töôûng theå hieän ôû ñaây laø haøm hay thuû tuïc ñoùng vai troø troïng taâm. Ñoái töôïng ñöôïc gôûi ñeán cho haøm xöû lyù. Trình töï söû duïng qua caùc böôùc: Khôûi ñoäng, söû duïng thöïc söï, doïn deïp. Chöông 2. Lớp 15
- Ví duï so saùnh (tt) 2. Caùch tieáp caän duøng haøm thaønh phaàn: //... struct Stack { Item *st, *top; int size; void Init(int sz) {st = top = new Item[size=sz];} void CleanUp() {if (st) delete [] st;} bool Full() const {return (top - st >= size);} bool Empty() const {return (top
- Ví duï so saùnh (tt) bool Stack::Push(Item x) { if (Full()) return false; *top++ = x; return true; } bool Stack::Pop(Item *px) { if (Empty()) return false; *px = *--top; return true; } Chöông 2. Lớp 17
- Ví duï so saùnh (tt) void XuatHe16(long n) { static char hTab[] = “0123456789ABCDEF”; Stack s; s.Init(8); int x; do { s.Push(n%16); n /= 16; } while(n); while(s.Pop(&x)) cout
- Ví duï so saùnh (tt) Nhaän xeùt: Giaûi quyeát ñöôïc vaán ñeà. Döõ lieäu vaø caùc haøm xöû lyù döõ lieäu ñöôïc gom vaøo moät choã beân trong caáu truùc. Do ñoù deã theo doõi quaûn lyù, deã baûo trì naâng caáp. Caùc thao taùc ñeàu bôùt ñi moät tham soá so vôùi caùch tieáp caän coå ñieån. Vì vaäy vieäc laäp trình goïn hôn. Tö töôûng theå hieän ôû ñaây laø ñoái töôïng ñoùng vai troø troïng taâm. Ñoái töôïng thöïc hieän thao taùc treân chính noù. Trình töï söû duïng qua caùc böôùc: Khôûi ñoäng, söû duïng thöïc söï, doïn deïp. Chöông 2. Lớp 19
- 2.2.1 Caùc haøm thaønh phaàn. Laø haøm ñöôïc khai baùo trong lôùp. Haøm thaønh phaàn coù theå ñöôïc ñònh nghóa beân trong hoaëc beân ngoaøi lôùp. Haøm thaønh phaàn coù nghi thöùc giao tieáp gioáng vôùi caùc haøm bình thöôøng khaùc: coù teân, danh saùch tham soá, giaù trò traû veà. Goïi haøm thaønh phaàn baèng pheùp toaùn daáu chaám (.) hoaëc daáu muõi teân (->). Stack s, *ps = &s; s.Init(10); for (int i = 0; i < 20; i++) ps->Push(i); Chöông 2. Lớp 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Đề cương bài giảng môn học Lập trình mạng
139 p | 609 | 250
-
Bài giảng môn học Lập trình hệ nhúng - Phạm Văn Thuận
113 p | 126 | 22
-
Bài giảng Công nghệ lập trình tiên tiến: Chương 0 - ĐH Công nghệ Đồng Nai
8 p | 145 | 11
-
Bài giảng Cơ sở lập trình 1: Giới thiệu môn học - Lê Quý Tài
9 p | 132 | 8
-
Bài giảng Kỹ thuật lập trình: Bài 1 - Phạm Đình Sắc
9 p | 129 | 7
-
Bài giảng Ngôn ngữ lập trình C: Giới thiệu môn học - PhD. Nguyễn Thị Huyền
7 p | 56 | 7
-
Bài giảng môn học Cơ sở lập trình - ThS. Phạm Thanh An
4 p | 116 | 7
-
Bài giảng Ngôn ngữ lập trình: Tổng quan môn học - Lê Nguyễn Tuấn Thành
6 p | 140 | 6
-
Bài giảng Cơ sở lập trình: Giới thiệu môn học - Trịnh Tấn Đạt
15 p | 15 | 6
-
Bài giảng môn học Cơ sở lập trình
11 p | 97 | 6
-
Bài giảng Kỹ thuật lập trình - TS. Vũ Hương Giang
8 p | 117 | 5
-
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 p | 15 | 4
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - TS. Vũ Thị Hương Giang
8 p | 26 | 4
-
Bài giảng Ngôn ngữ lập trình: Tổng quan môn học
6 p | 88 | 3
-
Bài giảng Kỹ thuật lập trình: Giới thiệu học phần - Trần Minh Thái (2017)
14 p | 59 | 3
-
Bài giảng Ngôn ngữ lập trình C: Giới thiệu môn học - TS. Nguyễn Thị Hiền
7 p | 52 | 2
-
Bài giảng Giới thiệu lập trình: Thông tin môn học - TS. Lê Nguyên Khôi
6 p | 70 | 2
-
Bài giảng Kỹ thuật lập trình: Mở đầu - TS. Vũ Hương Giang
8 p | 35 | 1
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