Giáo trình lập trình hướng đối tượng nghề công nghệ thông tin cao đẳng trường cao đẳng cộng đồng đồng tháp

Giáo trình lập trình hướng đối tượng cho sinh viên ngành công nghệ thông tin tại trường cao đẳng cộng đồng Đồng Tháp, cung cấp kiến thức chuyên sâu.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Giáo Trình

2017

230
1
0

Phí lưu trữ

55 Point

Mục lục chi tiết

LỜI NÓI ĐẦU

1. CHƯƠNG 1: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

1.1. Thế nào là lập trình hướng đối tượng

1.2. Một số khái niệm quan trọng

1.3. CÂU HỎI ÔN TẬP CHƯƠNG 1

2. CHƯƠNG 2: CÁC ĐẶC ĐIỂM CỦA C++

2.1. Cấu trúc chương trình

2.2. Cấu trúc điều khiển

2.2.1. Cấu trúc điều kiện: if và else

2.2.2. Các cấu trúc lặp

2.2.3. Các lệnh rẽ nhánh và lệnh nhảy

2.3. Con trỏ và chuỗi ký tự

2.4. Tham số mặc định của hàm

2.5. Truyền tham số

2.6. BÀI TẬP THỰC HÀNH CHƯƠNG 2

3. CHƯƠNG 3: LỚP VÀ ĐỐI TƯỢNG

3.1. Phạm vi lớp và truy cập các thành viên lớp

3.2. Hàm tạo và hàm hủy

3.2.1. Dùng hàm tạo trong khai báo

3.2.2. Dùng hàm tạo trong cấp phát bộ nhớ

3.2.3. Dùng hàm tạo để biểu diễn các đối tượng hằng

3.2.4. Hàm tạo mặc định

3.2.5. Hàm tạo và hàm hủy được gọi khi nào?

3.3. Đối tượng hằng và hàm thành viên hằng

3.4. Hàm bạn và lớp bạn

3.5. Hàm thành viên tĩnh

3.6. Con trỏ this

3.7. BÀI TẬP THỰC HÀNH CHƯƠNG 3

4. CHƯƠNG 4: THỪA KẾ

4.1. Ép kiểu các con trỏ lớp cơ sở tới các con trỏ lớp dẫn xuất

4.2. Các lớp cơ sở public, protected và private

4.3. Các constructor và destructor lớp dẫn xuất

4.4. Các lớp cơ sở ảo (virtual base classes)

4.5. Phương thức ảo (virtual function)

4.6. Các đặc trưng của phương thức ảo

4.7. Lớp trừu tượng (Abstract class)

4.8. Các thành viên ảo của một lớp

4.8.1. Toán tử ảo

4.8.2. Có constructor và destructor ảo hay không?

4.9. BÀI TẬP THỰC HÀNH CHƯƠNG 4

5. CHƯƠNG 5: TÍNH ĐA HÌNH

5.1. BÀI TẬP THỰC HÀNH CHƯƠNG 5

6. CHƯƠNG 6: THIẾT KẾ CHƯƠNG TRÌNH HƯỚNG ĐỐI TƯỢNG

6.1. Các giai đoạn phát triển hệ thống

6.2. Các bước cần thiết để thiết kế chương trình

6.3. Một số ví dụ minh họa

6.4. BÀI TẬP THỰC HÀNH CHƯƠNG 6

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về giáo trình lập trình hướng đối tượng cho công nghệ thông tin

Giáo trình lập trình hướng đối tượng (OOP) cho công nghệ thông tin là một tài liệu quan trọng giúp sinh viên nắm vững các khái niệm cơ bản và nâng cao trong lập trình. Tài liệu này không chỉ cung cấp lý thuyết mà còn hướng dẫn thực hành thông qua các ví dụ cụ thể. Nội dung giáo trình bao gồm các khái niệm như lớp, đối tượng, kế thừa và tính đa hình, giúp sinh viên phát triển kỹ năng lập trình một cách hiệu quả.

1.1. Khái niệm lập trình hướng đối tượng

Lập trình hướng đối tượng là một phương pháp lập trình dựa trên các đối tượng, cho phép tổ chức mã nguồn một cách có cấu trúc và dễ bảo trì. Các khái niệm chính bao gồm lớp, đối tượng, và các phương thức.

1.2. Tầm quan trọng của giáo trình lập trình OOP

Giáo trình lập trình OOP giúp sinh viên hiểu rõ hơn về cách thiết kế và phát triển phần mềm, từ đó nâng cao khả năng giải quyết vấn đề trong lập trình.

II. Những thách thức trong việc học lập trình hướng đối tượng

Học lập trình hướng đối tượng không phải là điều dễ dàng. Sinh viên thường gặp khó khăn trong việc hiểu các khái niệm trừu tượng như kế thừa và đa hình. Ngoài ra, việc áp dụng các lý thuyết vào thực tiễn cũng là một thách thức lớn.

2.1. Khó khăn trong việc hiểu các khái niệm OOP

Nhiều sinh viên gặp khó khăn trong việc phân biệt giữa lớp và đối tượng, cũng như cách thức hoạt động của các phương thức trong OOP.

2.2. Thực hành lập trình OOP

Việc thực hành lập trình OOP yêu cầu sinh viên phải có tư duy logic và khả năng phân tích tốt, điều này có thể gây áp lực cho nhiều người.

III. Phương pháp học lập trình hướng đối tượng hiệu quả

Để học lập trình hướng đối tượng một cách hiệu quả, sinh viên cần áp dụng các phương pháp học tập tích cực như thực hành thường xuyên, tham gia các dự án nhóm và tìm hiểu từ các nguồn tài liệu phong phú.

3.1. Thực hành thường xuyên

Thực hành là cách tốt nhất để củng cố kiến thức. Sinh viên nên viết mã thường xuyên và tham gia vào các bài tập thực hành.

3.2. Tham gia dự án nhóm

Tham gia vào các dự án nhóm giúp sinh viên học hỏi từ nhau và áp dụng kiến thức vào thực tiễn.

IV. Ứng dụng thực tiễn của lập trình hướng đối tượng

Lập trình hướng đối tượng được ứng dụng rộng rãi trong phát triển phần mềm, từ các ứng dụng di động đến các hệ thống quản lý phức tạp. Việc hiểu rõ OOP giúp lập trình viên tạo ra các sản phẩm chất lượng cao và dễ bảo trì.

4.1. Phát triển ứng dụng di động

Nhiều ứng dụng di động hiện nay được phát triển dựa trên các nguyên tắc của lập trình hướng đối tượng, giúp tối ưu hóa hiệu suất và khả năng mở rộng.

4.2. Hệ thống quản lý

Các hệ thống quản lý phức tạp thường sử dụng OOP để tổ chức mã nguồn, giúp dễ dàng trong việc bảo trì và nâng cấp.

V. Kết luận về giáo trình lập trình hướng đối tượng

Giáo trình lập trình hướng đối tượng là một công cụ hữu ích cho sinh viên công nghệ thông tin. Việc nắm vững các khái niệm và ứng dụng của OOP sẽ giúp sinh viên phát triển kỹ năng lập trình và chuẩn bị tốt cho sự nghiệp trong tương lai.

5.1. Tương lai của lập trình hướng đối tượng

Với sự phát triển không ngừng của công nghệ, lập trình hướng đối tượng sẽ tiếp tục đóng vai trò quan trọng trong việc phát triển phần mềm.

5.2. Lời khuyên cho sinh viên

Sinh viên nên không ngừng học hỏi và thực hành để nâng cao kỹ năng lập trình hướng đối tượng, từ đó mở rộng cơ hội nghề nghiệp trong lĩnh vực công nghệ thông tin.

16/08/2025
Giáo trình lập trình hướng đối tượng nghề công nghệ thông tin cao đẳng trường cao đẳng cộng đồng đồng tháp

Trích đoạn nội dung tài liệu

ỦY BAN NHÂN DÂN TỈNH ĐỒNG THÁP TRƯỜNG CAO ĐẲNG CỘNG ĐỒNG ĐỒNG THÁP GIÁO TRÌNH MÔN HỌC: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NGÀNH, NGHỀ: CÔNG NGHỆ THÔNG TIN TRÌNH ĐỘ: CAO ĐẲNG (Ban hành kèm theo Quyết định số /QĐ-CĐCĐ ngày tháng năm 20… của Hiệu trưởng trường Cao đẳng Cộng đồng Đồng Tháp) Đồng Tháp, năm 2017 TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. i LỜI NÓI ĐẦU Bài giảng sẽ trình bày một cách hệ thống các khái niệm của lập trình hƣớng đối tƣợng đƣợc cài đặt trong C++ nhƣ: lớp, đối tƣợng, sự kế thừa, tính đa hình. Bên cạnh đó, bài giảng cũng giới thiệu chi tiết cách thiết kế một chƣơng trình hƣớng đối tƣợng đến ngƣời học.

Bài giảng bao gồm các chƣơng sau:  Chƣơng 1: LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG  Chƣơng 2: CÁC ĐẶC ĐIỂM CỦA C++  Chƣơng 3: LỚP VÀ ĐỐI TƢỢNG  Chƣơng 4: THỪA KẾ  Chƣơng 5: TÍNH ĐA HÌNH  Chƣơng 6: THIẾT KẾ CHƢƠNG TRÌNH HƢỚNG ĐỐI TƢỢNG Cuối cùng, xin gửi lời cảm ơn chân thành nhất đến bạn bè, đồng nghiệp đã có những ý kiến đóng góp sâu sắc cho bài giảng này. Mọi ý kiến đóng góp xin vui lòng gửi đến địa chỉ mail: pqcuong@dtcc. Xin chân thành cảm ơn! Đồng Tháp, ngày 01 tháng 07 năm 2017 Tác giả Phan Quốc Cƣờng i MỤC LỤC LỜI NÓI ĐẦU .ii DANH MỤC CÁC HÌNH. 1 LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG .1 Thế nào là lập trình hƣớng đối tƣợng .2 Một số khái niệm quan trọng.

3 CÂU HỎI ÔN TẬP CHƢƠNG 1. 9 CÁC ĐẶC ĐIỂM CỦA C++ .1 Cấu trúc chƣơng trình .2 Cấu trúc điều khiển .1 Cấu trúc điều kiện: if và else .2 Các cấu trúc lặp .3 Các lệnh rẽ nhánh và lệnh nhảy .3 Con trỏ và chuỗi ký tự .4 Tham số mặc định của hàm .6 Truyền tham số. 64 BÀI TẬP THỰC HÀNH CHƢƠNG 2. 76 LỚP VÀ ĐỐI TƢỢNG .3 Phạm vi lớp và truy cập các thành viên lớp.4 Hàm tạo và hàm hủy .2 Dùng hàm tạo trong khai báo .3 Dùng hàm tạo trong cấp phát bộ nhớ .4 Dùng hàm tạo để biểu diễn các đối tƣợng hằng.5 Hàm tạo mặc định .7 Hàm tạo và hàm hủy đƣợc gọi khi nào? .5 Đối tƣợng hằng và hàm thành viên hằng .6 Hàm bạn và lớp bạn .7 Hàm thành viên tĩnh .8 Con trỏ this.

134 BÀI TẬP THỰC HÀNH CHƢƠNG 3 .1 Ép kiểu các con trỏ lớp cơ sở tới các con trỏ lớp dẫn xuất .2 Các lớp cơ sở public, protected và private .3 Các constructor và destructor lớp dẫn xuất.3 Các lớp cơ sở ảo (virtual base classes). 167 BÀI TẬP THỰC HÀNH CHƢƠNG 4 .2 Phƣơng thức ảo (virtual function) .3 Các đặc trƣng của phƣơng thức ảo.4 Lớp trừu tƣợng (Abstract class) .5 Các thành viên ảo của một lớp .1 Toán tử ảo .2 Có constructor và destructor ảo hay không?. 194 BÀI TẬP THỰC HÀNH CHƢƠNG 5. 200 THIẾT KẾ CHƢƠNG TRÌNH THEO HƢỚNG ĐỐI TƢỢNG .1 Các giai đoạn phát triển hệ thống.3 Các bƣớc cần thiết để thiết kế chƣơng trình .4 Một số ví dụ minh họa.

204 BÀI TẬP THỰC HÀNH CHƢƠNG 6. 221 TÀI LIỆU THAM KHẢO. 222 Trang iv DANH MỤC CÁC HÌNH Hình 1 - Lớp ấn phẩm và các lớp dẫn xuất của nó. 5 Hình 2 – Minh họa tính đa hình đối với ấn phẩm và các lớp dẫn xuất của nó.

7 Hình 3 – Kết quả tính thể tích hình hộp. 49 Hình 4 – Kết quả tính thể tích hình lập phƣơng. 52 Hình 5 – Một đối tƣợng phần mềm. 81 Hình 6 – Đối tƣợng phần mềm xe đạp.

82 Hình 7 – Kết quả minh họa phạm vi lớp. 84 Hình 8 – TBD báo lỗi. 86 Hình 9 – Kết quả chƣơng trình có sử dụng hảm hủy. 98 Hình 10 – Kết quả chƣơng trình minh họa thứ tự các constructor và destructor đƣợc gọi.

101 Hình 11 – Lỗi biên dịch. 106 Hình 12 – Kết quả khởi tạo một hằng của kiểu dữ liệu có sẵn. 109 Hình 13 – Trình biên dịch thông báo lỗi. 109 Hình 14 – Kết quả minh họa sử dụng tƣờng minh của con trỏ this.

136 Hình 15 – Kết quả trả về một tham chiếu tới một đối tƣợng Time. 141 Hình 16 – Minh họa phân cấp kế thừa đơn. 146 Hình 17 – Phân cấp lớp Shape. 146 Hình 18 – Kết quả minh họa.

153 Hình 19 - Minh họa thứ tự các contructor và destructor lớp cơ sở và lớp dẫn xuất đƣợc gọi. 160 Hình 20 – Kết quả minh họa. 166 Hình 21 – Kết quả sau khi lớp cơ sở ảo. 171 Hình 22 – Kết quả chƣơng trình.

180 Hình 23 – Kết quả minh họa các tính chất phƣơng thức ảo. 184 Hình 24 – Mô tả tính đa hình của hàm Print(). 185 Hình 25 – Kết quả ví dụ minh họa tính đa hình hàm Print(). 188 Trang v Hình 26 – Kết quả ví dụ minh họa đa năng hóa toán tử với hàm toán tử là phƣơng thức ảo.

194 Hình 27 – Kết quả minh họa destructor ảo. 196 Hình 28 - Tìm ra những gì tồn tại chung giữa các đối tƣợng. 203 Hình 29 - Tiếp tục theo hƣớng từ dƣới lên. 204 Hình 30 – Các lớp Nguoi, BienChe, HopDong.

205 Hình 31 – Kết quả chƣơng trình tính tiền lƣơng của các nhân viên trong cơ quan theo các dạng khác nhau. 212 Hình 32 – Các lớp Nguoi, SinhVien, GiangVien. 213 Hình 33 – Kết quả ví dụ 2. 220 Trang vi Chƣơng 1 LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG MỤC ĐÍCH Phân biệt sự khác nhau giữa lập trình cổ điển và lập trình hƣớng đối tƣợng; giới thiệu các khái niệm quan trọng trong lập trình hƣớng đối tƣợng nhƣ: đối tƣợng, thể hiện, lớp; và giới thiệu các đặc điểm chính của lập trình hƣớng đối tƣợng nhƣ: tính đóng gói, tính kế thừa, tính đa hình.

Nhiệm vụ tự học và tài liệu tham khảo của sinh viên trong chƣơng 1 Để đạt đƣợc mục đích đề ra trong chƣơng 1, sinh viên phải thực hiện tốt các yêu cầu sau đây:  Xem trƣớc đề cƣơng chi tiết của Chƣơng 1 để biết đƣợc mục đích, nội dung sẽ đƣợc trình bày trong chƣơng này  Phải đọc trƣớc nội dung Chƣơng 1 trong quyển bài giảng này trƣớc khi lên lớp 1.1 Thế nào là lập trình hƣớng đối tƣợng Phƣơng pháp lập trình cấu trúc - Tƣ tƣởng chính của lập trình cấu trúc là tổ chức chƣơng trình thành các chƣơng trình con. Trong PASCAL có 2 kiểu chƣơng trình con là thủ tục và hàm. Trong C chỉ có một loại chƣơng trình con là hàm. Hàm là một đơn vị chƣơng trình độc lập dùng để thực hiện một phần việc nào đó nhƣ: Nhập số liệu, in kết quả hay thực hiện một số tính toán.

Hàm cần có đối và các biến, mảng cục bộ dùng riêng cho hàm. - Các ngôn ngữ nhƣ C, PASCAL, FOXPRO là các ngôn ngữ cho phép triển khai phƣơng pháp lập trình cấu trúc. Một chƣơng trình cấu trúc gồm các cấu trúc dữ liệu (nhƣ biến, mảng, bản ghi) và các hàm, thủ tục. Nhiệm vụ chính của việc tổ chức thiết kế chƣơng trình cấu trúc là tổ chức chƣơng trình thành các hàm, thủ tục: Chƣơng trình sẽ bao gồm các hàm, thủ tục nào.

Trang 1 Phƣơng pháp lập trình hƣớng đối tƣợng Khái niệm trung tâm của lập trình hƣớng đối tƣợng là lớp (class). Có thể xem lớp là sự kết hợp các thành phần dữ liệu và các hàm. Cũng có thể xem lớp là sự mở rộng của cấu trúc trong C (struct) bằng cách đƣa thêm vào các phƣơng thức (method) hay cũng gọi là hàm thành viên (member function). Một lớp đƣợc định nghĩa nhƣ sau: class Tên_Lớp { // Khai báo các thành phần dữ liệu // Khai báo các phƣơng thức }; Các phƣơng thức có thể đƣợc viết (xây dựng) bên trong hoặc bên ngoài (phía dƣới) phần định nghĩa lớp.

Cấu trúc (cách viết) phƣơng thức tƣơng tự nhƣ hàm ngoại trừ quy tắc sau: Khi xây dựng một phƣơng thức bên ngoài định nghĩa lớp thì trong dòng đầu tiên cần dùng tên lớp và dấu :: đặt trƣớc tên phƣơng thức để chỉ phƣơng thức thuộc lớp nào. Sử dụng các thành phần dữ liệu trong phƣơng thức: Vì phƣơng thức và các thành phần dữ liệu thuộc cùng một lớp và vì phƣơng thức đƣợc lập lên cốt để xử lý các thành phần dữ liệu, nên trong thân của phƣơng thức có quyền truy nhập đến các thành phần dữ liệu (của cùng lớp). Biến lớp: Sau khi định nghĩa một lớp, có thể dùng tên lớp để khai báo các biến kiểu lớp hay cũng gọi là đối tƣợng. Mỗi đối tƣợng sẽ có các thành phần dữ liệu và các phƣơng thức.

Lời gọi một phƣơng thức cần chứa tên đối tƣợng để xác định phƣơng thức thực hiện từ đối tƣợng nào. Một chƣơng trình hƣớng đối tƣợng sẽ bao gồm các lớp có quan hệ với nhau. Việc phân tích, thiết kế chƣơng trình theo phƣơng pháp hƣớng đối tƣợng nhằm thiết kế, xây dựng Trang 2 các lớp. Từ khái niệm lớp nẩy sinh hàng loạt khái niệm khác nhƣ: Thành phần dữ liệu, phƣơng thức, phạm vi, sự đóng gói, hàm tạo, hàm huỷ, sự thừa kế, lớp cơ sử, lớp dẫn xuất, tƣơng ứng bội, phƣơng thức ảo,.

Ƣu điểm của việc thiết kế hƣớng đối tƣợng là tập trung xác định các lớp để mô tả các thực thể của bài toán. Mỗi lớp đƣa vào các thành phần dữ liệu của thực thể và xây dựng luôn các phƣơng thức để xử lý dữ liệu. Nhƣ vậy việc thiết kế chƣơng trình xuất phát từ các nội dụng, các vấn đề của bài toán. Các ngôn ngữ thuần tuý hƣớng đối tƣợng (nhƣ Smalltalk) chỉ hỗ trợ các khái niệm về lớp, không có các khái niệm hàm.

C++ là ngôn ngữ lai, nó cho phép sử dụng cả các công cụ của lớp và hàm.2 Một số khái niệm quan trọng Trong phần này, chúng ta tìm hiểu các khái niệm nhƣ sự đóng gói, tính kế thừa và tính đa hình. Đây là các khái niệm căn bản, là nền tảng tƣ tƣởng của lập trình hƣớng đối tƣợng. Hiểu đƣợc khái niệm này, chúng ta bƣớc đầu tiếp cận với phong cách lập trình mới, phong cách lập trình dựa vào đối tƣợng làm nền tảng mà trong đó quan điểm che dấu thông tin thông qua sƣ đóng gói là quan điểm trung tâm của vấn đề.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ