You are on page 1of 6

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI

ThS. Nguyễn Thị Hồng Hương

GIÁO TRÌNH
LẬP TRÌNH
HƯỚNG ĐỐI TƯỢNG
(dành cho hệ cao đẳng)

Hà Nội, 2011
LỜI NÓI ĐẦU
Phương pháp lập trình hướng đối tượng là một trong những phương pháp lập
trình hiện đang được sử dụng rộng rãi. Chính vì vậy, Lập trình hướng đối tượng cũng
trở thành một môn học bắt buộc trong chương trình đào tạo của của hầu hết các ngành
thuộc lĩnh vực Công nghệ thông tin. Môn học này được đưa vào giảng dạy ngay từ
khóa đào tạo Cao đẳng đầu tiên của Khoa Công nghệ thông tin, Trường Đại học Tài
nguyên và Môi trường Hà Nội. Tuy nhiên, từ trước đến nay, sinh viên vẫn chưa có một
tài liệu học tập mà phù hợp với nội dung giảng dạy theo chương trình môn học mặc dù
nguồn tài liệu tham khảo khá phong phú. Với việc biên soạn giáo trình này, tác giả hy
vọng sẽ cung cấp cho sinh viên hệ đào tạo cao đẳng thuộc Khoa Công nghệ thông tin
một tài liệu phù hợp với chương trình môn học, phục vụ yêu cầu tự nghiên cứu không
chỉ với môn học Lập trình hướng đối tượng với ngôn ngữ C++ mà còn phần nào đáp
ứng nhu cầu tìm hiểu những ngôn ngữ lập trình hướng đối tượng khác hiện đang được
sử dụng trong phát triển phần mềm.
Giáo trình được chia thành 4 chương với nội dung kiến thức trong từng chương
như sau:
Chương 1: Tổng quan về lập trình hướng đối tượng. Chương này giới thiệu
với bạn đọc một số phương pháp lập trình phổ biến đã và đang được sử dụng khi phát
triển phần mềm và đi sâu giới thiệu về phương pháp lập trình hướng đối tượng như:
các bước tiến hành lập trình, các đặc điểm và các ưu điểm của phương pháp lập trình
này. Hơn nữa, chương này cũng giới thiệu về một số ngôn ngữ lập trình hướng đối
tượng tiêu biểu, trong đó có ngôn ngữ lập trình C++.
Chương 2: Một số tiện ích và mở rộng của C++ so với C. Do học phần Lập
trình hướng đối tượng được bố trí học sau học phần Tin học cơ sở trong chương trình
đào tạo của Khoa Công nghệ thông tin (với phần lập trình căn bản bằng ngôn ngữ C)
nên chương này giới thiệu với bạn đọc một số mở rộng chính của ngôn ngữ C++ so
với ngô ngữ C như: các câu lệnh vào/ra, cách sử dụng hàm nội tuyến, sử dụng định
nghĩa chồng hàm, cách truyền tham số mặc định, cách truyền tham số cho hàm bằng
chiếu,…
Chương 3: Lớp và đối tượng. Chương này hướng dẫn cho sinh viên cài đặt các
khái niệm cơ bản đầu tiên của lập trình hướng đối tượng bằng ngôn ngữ C++, đó là
khái niệm Lớp và Đối tượng. Nội dung của chương bao gồm: cách khai báo lớp và các
thuộc tính, phương thức của lớp; cách khai báo và sử dụng biến, mảng đối tượng và
con trỏ đối tượng; cách xây dựng phương thức của lớp và cách sử dụng một số phương
thức đặc biệt của lớp; mối liên quan giữa phương thức của lớp và hàm trong một
chương trình.
Chương 4: Kỹ thuật thừa kế. Nội dung chương này giới thiệu cách cài đặt khái
niệm thừa kế và những khái niệm liên quan đến nó trong ngôn ngữ lập trình C++. Cụ
thể: cách khai báo quan hệ thừa kế; quyền truy nhập tới các thành phần của lớp cơ sở
trong mô hình thừa kế; cách sử dụng phương thức ảo khi cài đặt khái niệm đa hình,…
Giáo trình là sự tổng hợp các tài liệu tham khảo hiện có trên thị trường và một
số nguồn tài liệu khác từ Internet nhưng bám sát chương trình môn học đã được phê
duyệt, định hướng phục vụ cho sinh viên Khoa Công nghệ thông tin. Trong từng
chương (từ chương 2 đến chương 4) đều có các ví dụ minh họa cho những khái niệm
được giới thiệu. Đồng thời, sau mỗi chương đều có phần câu hỏi ôn tập và bài tập vận
dụng nhằm giúp bạn đọc củng cố kiến thức.
Giáo trình được dùng làm tài liệu học tập chính cho học phần Lập trình hướng
đối tượng trình độ Cao đẳng. Hơn nữa, từ việc tìm hiểu những khái niệm cơ bản được
cài đặt bằng ngôn ngữ C++, bạn đọc có thể dễ dàng tiếp cận với các ngôn ngữ lập trình
hướng đối tượng khác.
Trong quá trình biên soạn, mặc dù đã rất cố gắng nhưng giáo trình này không
thể tránh khỏi những thiếu sót. Tác giả rất mong nhận được sự đóng góp ý kiến của
các bạn đồng nghiệp, các thầy, cô giáo và các bạn sinh viên. Mọi ý kiến đóng góp xin
gửi về: Khoa Công nghệ thông tin, Trường Đại học Tài nguyên và Môi trường Hà Nội.
Xin trân trọng cảm ơn.
Hà Nội, tháng 11 năm 2011
TÁC GIẢ
MỤC LỤC

Lời nói đầu


Chương 1. TỔNG QUAN VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG .................. 8
1.1. Các phương pháp lập trình ................................................................................ 8
1.1.1. Lập trình tuyến tính ........................................................................................ 8
1.1.2. Lập trình cấu trúc ............................................................................................ 9
1.1.3. Lập trình hướng đối tượng .............................................................................. 10
1.2. Phương pháp lập trình hướng đối tượng ........................................................ 11
1.2.1. Các khái niệm cơ bản ..................................................................................... 11
1.2.2. Các bước giải quyết bài toán theo phương pháp hướng đối tượng ................ 13
1.2.3. Ưu điểm của lập trình hướng đối tượng ......................................................... 14
1.3. Các đặc điểm của lập trình hướng đối tượng ................................................. 15
1.4. Các ngôn ngữ lập trình hướng đối tượng ....................................................... 15
Câu hỏi và bài tập chương 1 ...................................................................................... 16
Chương 2. MỘT SỐ TIỆN ÍCH VÀ MỞ RỘNG CỦA C++ SO VỚI C ............. 18
2.1. Soạn thảo và biên dịch chương trình .................................................................. 18
2.1.1. Các từ khóa mới ............................................................................................... 18
2.1.2. Ép kiểu ............................................................................................................. 18
2.1.3. Khai báo biến linh hoạt .................................................................................... 18
2.1.4. Kiểu void .......................................................................................................... 20
2.2. Vào/ra trong C++ ................................................................................................ 20
2.2.1. Cú pháp lệnh .................................................................................................... 20
2.2.2. Định dạng dữ liệu đưa ra màn hình ................................................................. 22
2.3. Khai báo kiểu cấu trúc, kiểu hợp và kiểu liệt kê ................................................ 24
2.3.1. Kiểu cấu trúc .................................................................................................... 24
2.3.2. Kiểu hợp .......................................................................................................... 24
2.3.3. Kiểu liệt kê........................................................................................................ 25
2.4. Hàm nội tuyến .................................................................................................... 26
2.4.1. Ưu, nhược điểm của việc sử dụng hàm ........................................................... 26
2.4.2. Khái niệm và cách sử dụng hàm nội tuyến ...................................................... 26
2.5. Định nghĩa chồng hàm ........................................................................................ 27
2.5.1. Khái niệm ........................................................................................................ 27
2.5.2. Cách gọi hàm ................................................................................................... 28
2.6. Truyền tham số mặc định ................................................................................... 30
2.6.1. Cách khai báo đối số mặc định ........................................................................ 30
2.6.2. Cách gọi hàm có đối số mặc định .................................................................... 30
2.7. Truyền tham chiếu .............................................................................................. 32
2.7.1. Khái niệm biến tham chiếu .............................................................................. 32
2.7.2. Truyền giá trị cho hàm theo tham chiếu .......................................................... 32
2.8. Cấp phát bộ nhớ .................................................................................................. 35
Câu hỏi và bài tập chương 2 ...................................................................................... 36
Chương 3. LỚP VÀ ĐỐI TƯỢNG .......................................................................... 42
3.1. Khái niệm lớp ..................................................................................................... 42
3.1.1. Cách định nghĩa lớp ......................................................................................... 42
3.1.2. Tính “trông thấy được” của các thành phần trong lớp .................................... 44
3.2. Biến, mảng đối tượng ......................................................................................... 46
3.2.1. Cách khai báo biến, mảng đối tượng ............................................................... 46
3.2.2. Cách viết thuộc tính và phương thức của đối tượng ....................................... 46
3.3. Con trỏ đối tượng ................................................................................................ 48
3.3.1. Cách khai báo con trỏ đối tượng ..................................................................... 48
3.3.2. Sử dụng thuộc tính và phương thức của đối tượng thông qua con trỏ ............ 48
3.4. Đối của phương thức .......................................................................................... 51
3.4.1. Con trỏ this ...................................................................................................... 51
3.4.2. Các đối khác của phương thức ........................................................................ 52
3.5. Hàm tạo, hàm hủy ............................................................................................... 56
3.5.1. Hàm tạo ............................................................................................................ 56
3.5.2. Hàm hủy .......................................................................................................... 58
3.6. Hàm bạn .............................................................................................................. 61
3.6.1. Khái niệm và cách khai báo hàm bạn .............................................................. 61
3.6.2. Sử dụng hàm bạn ............................................................................................. 62
3.6.3. Một số vấn đề khác về hàm bạn ...................................................................... 64
3.7. Một số vấn đề khác ............................................................................................. 65
3.7.1. Phép gán đối tượng .......................................................................................... 65
3.7.2 Phương thức toán tử ......................................................................................... 65
3.7.3. Các thành phần tĩnh ......................................................................................... 67
3.7.4. Phương thức inline .......................................................................................... 71
Câu hỏi và bài tập chương 3 ...................................................................................... 72
Chương 4. KỸ THUẬT THỪA KẾ ........................................................................ 82
4.1. Khái niệm chung ................................................................................................. 82
4.1.1. Định nghĩa ....................................................................................................... 82
4.1.2. Thừa kế đơn và thừa kế bội ............................................................................. 83
4.1.3. Thể hiện của tính kế thừa ................................................................................ 83
4.2. Cách xây dựng lớp dẫn xuất ............................................................................... 84
4.2.1. Cách khai báo lớp dẫn xuất ............................................................................. 84
4.2.2. Thừa kế thuộc tính ........................................................................................... 84
4.2.3. Thừa kế phương thức ....................................................................................... 85
4.2.4. Sử dụng hàm tạo, hàm hủy của lớp cơ sở ........................................................ 88
4.3. Phạm vi truy nhập đến các thành phần của lớp cơ sở ........................................ 90
4.3.1. Các từ khóa quy định phạm vi truy nhập ........................................................ 90
4.3.2. Các kiểu dẫn xuất ............................................................................................ 90
4.4. Thừa kế nhiều mức ............................................................................................. 92
4.4.1. Cách xây dựng mô hình thừa kế nhiều mức .................................................... 92
4.4.2. Sử dụng các thành phần của lớp cơ sở trong lớp dẫn xuất .............................. 93
4.4.3. Lớp cơ sở ảo .................................................................................................... 95
4.5. Phương thức ảo và tính đa hình .......................................................................... 96
4.5.1. Phương thức tĩnh và phương thức ảo .............................................................. 96
4.5.2. Tính đa hình ..................................................................................................... 103
4.6. Lớp cơ sở trừu tượng .......................................................................................... 106
4.6.1. Khái niệm ........................................................................................................ 106
4.6.2. Các lưu ý khi sử dụng lớp cơ sở trừu tượng .................................................... 107
4.7. Ví dụ tổng hợp ..................................................................................................... 109
Câu hỏi và bài tập chương 4 ...................................................................................... 113
Tài liệu tham khảo ..................................................................................................... 121

You might also like