Giáo Trình Kỹ Thuật Lập Trình Hướng Đối Tượng Phần 1

Giáo trình kỹ thuật về kỹ thuật lập trình hướng đối tượng phần 1, biên soạn theo chương trình đào tạo chuẩn, hệ thống hóa kiến thức từ cơ bản đến nâng cao.

Trường đại học

Trường Đại Học Hùng Vương

Người đăng

Ẩn danh

Thể loại

Giáo Trình

2017

112
1
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI MỞ ĐẦU

1. CHƯƠNG 1: CÁC KHÁI NIỆM CƠ SỞ CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

1.1. Tiếp cận hướng đối tượng

1.2. Những nhược điểm của lập trình hướng thủ tục

1.3. Đặc điểm lập trình hướng đối tượng

1.4. Các khái niệm cơ bản của lập trình hướng đối tượng

1.4.1. Đối tượng

1.4.2. Lớp

1.4.3. Trừu tượng hóa dữ liệu và bao gói thông tin

1.4.4. Kế thừa

1.4.5. Tương ứng bội

1.4.6. Liên kết động

1.4.7. Truyền thông báo

1.5. Các bước cần thiết để thiết kế chương trình theo hướng đối tượng

1.6. Các ưu điểm của lập trình hướng đối tượng

1.7. Các ngôn ngữ hướng đối tượng

1.8. Một số ứng dụng của lập trình hướng đối tượng

2. CÁC MỞ RỘNG CỦA NGÔN NGỮ C++

2.1. Giới thiệu chung về C++

2.2. Một số mở rộng của C++ so với C

2.3. Đặt lời chú thích

2.4. Phép chuyển kiểu bắt buộc

2.5. Lấy địa chỉ các phần tử mảng thực 2 chiều

2.6. Vào ra trong C

2.6.1. Xuất dữ liệu

2.6.2. Nhập dữ liệu

2.6.3. Định dạng khi in ra màn hình

2.7. Cấp phát và giải phóng bộ nhớ

2.7.1. Toán tử new để cấp phát bộ nhớ

2.7.2. Toán tử delete

2.8. Biến tham chiếu

2.8.1. Hằng tham chiếu

2.8.2. Truyền tham số cho hàm theo tham chiếu

2.8.3. Hàm trả về giá trị tham chiếu

2.9. Hàm với tham số có giá trị mặc định

2.10. Các hàm nội tuyến (inline)

2.11. Định nghĩa lớp

2.11.1. Tạo lập đối tượng

2.11.2. Truy nhập tới các thành phần của lớp

3. CON TRỎ ĐỐI TƯỢNG

3.1. Con trỏ this

3.2. Dữ liệu thành phần tĩnh và hàm thành phần tĩnh

3.2.1. Dữ liệu thành phần tĩnh

3.2.2. Hàm thành phần tĩnh

3.3. Hàm tạo sao chép

3.3.1. Hàm tạo sao chép mặc định

3.3.2. Hàm tạo sao chép

4. TOÁN TỬ TẢI BỘI

4.1. Định nghĩa toán tử tải bội

4.2. Một số lưu ý khi xây dựng toán tử tải bội

4.3. Một số ví dụ

4.4. Định nghĩa chồng các toán tử ++, --

4.5. Định nghĩa chồng toán tử « và »

4.6. Định nghĩa lớp dẫn xuất từ một lớp cơ sở

4.6.1. Truy nhập các thành phần trong lớp dẫn xuất

4.6.2. Định nghĩa lại các hàm thành phần của lớp cơ sở trong lớp dẫn xuất

4.6.3. Hàm tạo đối với tính kế thừa

4.6.4. Hàm hủy đối với tính kế thừa

4.6.5. Dẫn xuất protected

4.6.6. Đa kế thừa

4.6.7. Định nghĩa lớp dẫn xuất từ nhiều lớp cơ sở

4.6.8. Một số ví dụ về đa kế thừa

4.7. Định nghĩa hàm ảo

4.7.1. Quy tắc gọi hàm ảo

4.8. Quy tắc gán địa chỉ đối tượng cho con trỏ lớp cơ sở

4.9. Khai báo lớp cơ sở ảo

4.10. Hàm tạo và hàm hủy đối với lớp cơ sở ảo

4.11. Khuôn hình hàm

4.11.1. Tạo một khuôn hình hàm

4.11.2. Sử dụng khuôn hình hàm

4.11.3. Các tham số kiểu của khuôn hình hàm

4.11.4. Định nghĩa chồng các khuôn hình hàm

4.12. Khuôn hình lớp

4.12.1. Tạo một khuôn hình lớp

4.12.2. Sử dụng khuôn hình lớp

4.12.3. Các tham số trong khuôn hình lớp

5. CÁC DÒNG XUẤT NHẬP

5.1. Dòng cin và toán tử nhập »

5.2. Toán tử trích »

5.3. Nhập ký tự và chuỗi ký tự

5.4. Phương thức get() có 3 dạng

5.5. Phương thức getline()

5.6. Phương thức ignore

5.7. Dòng cout và toán tử xuất «

5.8. Các phương thức định dạng

5.9. Cờ định dạng

5.10. Các phương thức bật tắt cờ

5.11. Các bộ phận định dạng

5.12. Các hàm định dạng

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 Phần 1

Giáo trình Lập Trình Hướng Đối Tượng - Phần 1 cung cấp cái nhìn tổng quan về phương pháp lập trình hiện đại. Nội dung giáo trình được thiết kế để giúp sinh viên nắm vững các khái niệm cơ bản và ứng dụng của lập trình hướng đối tượng. Đặc biệt, giáo trình này nhấn mạnh tầm quan trọng của việc tổ chức chương trình thành các lớp và đối tượng, từ đó giúp sinh viên phát triển kỹ năng lập trình hiệu quả hơn.

1.1. Khái niệm cơ bản về lập trình hướng đối tượng

Lập trình hướng đối tượng (OOP) là phương pháp lập trình dựa trên các đối tượng. Đối tượng là các thực thể có dữ liệu và phương thức riêng. Khái niệm này giúp mô phỏng các thực thể trong thế giới thực, từ đó tạo ra các ứng dụng gần gũi và dễ hiểu hơn.

1.2. Lợi ích của lập trình hướng đối tượng

Lập trình hướng đối tượng mang lại nhiều lợi ích như khả năng tái sử dụng mã nguồn, dễ dàng bảo trì và mở rộng ứng dụng. Các nguyên tắc như kế thừa, đóng gói và trừu tượng hóa giúp tối ưu hóa quy trình phát triển phần mềm.

II. Vấn đề và thách thức trong lập trình hướng đối tượng

Mặc dù lập trình hướng đối tượng mang lại nhiều lợi ích, nhưng cũng tồn tại một số thách thức. Việc thiết kế lớp và đối tượng không đúng cách có thể dẫn đến mã nguồn phức tạp và khó bảo trì. Ngoài ra, việc hiểu rõ các khái niệm như kế thừa và đa hình cũng là một thách thức lớn đối với nhiều lập trình viên mới.

2.1. Những khó khăn trong việc thiết kế lớp

Thiết kế lớp không hợp lý có thể dẫn đến việc lặp lại mã nguồn và khó khăn trong việc mở rộng. Việc xác định các thuộc tính và phương thức cho lớp cần phải được thực hiện cẩn thận để đảm bảo tính hiệu quả.

2.2. Thách thức trong việc áp dụng kế thừa

Kế thừa là một trong những khái niệm quan trọng trong OOP, nhưng việc sử dụng không đúng cách có thể dẫn đến các vấn đề như kế thừa không mong muốn và làm phức tạp cấu trúc chương trình.

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

Để lập trình hướng đối tượng hiệu quả, cần áp dụng các phương pháp thiết kế hợp lý. Việc sử dụng các nguyên tắc như SOLID giúp cải thiện chất lượng mã nguồn và khả năng bảo trì. Ngoài ra, việc sử dụng các công cụ hỗ trợ cũng rất quan trọng trong quá trình phát triển.

3.1. Nguyên tắc SOLID trong lập trình OOP

Nguyên tắc SOLID bao gồm năm nguyên tắc cơ bản giúp lập trình viên thiết kế mã nguồn dễ bảo trì và mở rộng. Việc tuân thủ các nguyên tắc này giúp giảm thiểu lỗi và tăng tính linh hoạt của ứng dụng.

3.2. Sử dụng công cụ hỗ trợ lập trình

Các công cụ như IDE, hệ thống quản lý phiên bản và thư viện mã nguồn mở giúp lập trình viên tiết kiệm thời gian và nâng cao hiệu quả làm việc. Việc lựa chọn công cụ phù hợp là rất quan trọng trong quá trình phát triển phần mềm.

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 nhiều lĩnh vực như phát triển phần mềm, game, và ứng dụng di động. Các ngôn ngữ lập trình như C++, Java, và Python đều hỗ trợ lập trình hướng đối tượng, giúp lập trình viên dễ dàng xây dựng các ứng dụng phức tạp.

4.1. Ứng dụng trong phát triển phần mềm

Trong phát triển phần mềm, lập trình hướng đối tượng giúp tổ chức mã nguồn một cách rõ ràng và dễ hiểu. Các ứng dụng lớn thường được chia thành nhiều lớp và đối tượng, giúp quản lý và bảo trì dễ dàng hơn.

4.2. Lập trình game và ứng dụng di động

Lập trình hướng đối tượng là phương pháp chính trong phát triển game và ứng dụng di động. Các đối tượng trong game như nhân vật, vật phẩm và môi trường đều được mô phỏng dưới dạng các lớp, giúp tạo ra trải nghiệm người dùng phong phú.

V. Kết luận và tương lai của lập trình hướng đối tượng

Lập trình hướng đối tượng đã chứng minh được giá trị của mình trong việc phát triển phần mềm. Tương lai của lập trình hướng đối tượng hứa hẹn sẽ tiếp tục phát triển với sự ra đời của các ngôn ngữ và công nghệ mới. Việc nắm vững các khái niệm và phương pháp lập trình hướng đối tượng sẽ giúp lập trình viên sẵn sàng cho những thách thức trong tương lai.

5.1. Xu hướng phát triển ngôn ngữ lập trình

Các ngôn ngữ lập trình mới đang ngày càng tích hợp nhiều tính năng của lập trình hướng đối tượng, giúp lập trình viên dễ dàng hơn trong việc phát triển ứng dụng. Sự phát triển này mở ra nhiều cơ hội mới cho các lập trình viên.

5.2. Tầm quan trọng của việc học lập trình hướng đối tượng

Việc học lập trình hướng đối tượng không chỉ giúp lập trình viên phát triển kỹ năng cá nhân mà còn mở ra nhiều cơ hội nghề nghiệp trong lĩnh vực công nghệ thông tin. Nắm vững OOP là một lợi thế lớn trong thị trường lao động hiện nay.

15/07/2025
Giáo trình kỹ thuật lập trình hướng đối tượng phần 1

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

Chương 1 trình bày những vấn để sau: r Thao luận vê cách tiếp cận hướng đối tượng, những nhược điêm cua lập trinh truyến thong và các đặc điẻm cua lập trinh hướng đối tượng. > Các khái niệm cơ sơ cua phương pháp hưởng đối lượng: • Đoi tượng • Lớp • Trừu lượng hóa dữ liệu và bao gói thông tin • Kế thừa • Tương ứng bội • Liên kết động • Truyẽn thông báo > Các bước cần thiết đế thiết kế chương trình theo hướng đổi tượng > Các ưu điẽm cùa ìập trình hướng đổi tượng > Các ngôn ngữ hướng đối tượng > Một số ứng dụng cùa lập trình hướng đối tượng 9 1. Tiếp cận hướng đổi tượng Trong thế giói thực, xung quanh chúng ta là những đối tượng, đó là các thực thể có mối quan hệ với nhau. Ví dụ các phòng trong một công ty kinh doanh được xem như những đối tượng.

Các phòng ở đây có thể là: phòng quản lý, phòng bán hàng, phòng kế toán, phòng tiếp thị,. Mỗi phòng ngoài những cán bộ đàm nhiệm những công việc cụ thề, còn có những dữ liệu riêng như thông tin về nhân viên, doanh số bán hàng, hoặc các dừ liệu khác có liên quan đến bộ phận đó. Việc phân chia các phòng chức năng trong công ty sẽ tạo điều kiện dễ dàng cho việc quản lý các hoạt động. Mỗi nhân viên trong phòng sê điều khiển và xử lý dữ liệu của phòng đó.

Ví dụ phòng kế toán phụ trách về lương bổng nhân viên trong công ty. Nếu bạn đang ở bộ phận tiếp thị và cần tìm thông tin chi tiết về lương của đơn vị minh thi sẽ gửi yêu cầu về phòng kế toán. Với cách làm này bạn được đảm bảo là chi có nhân viên của bộ phận kế toán được quyền truy cập dữ liệu và cung cấp thông tín cho bạn. Điều này cũng cho thấy rằng, không có người nào thuộc bộ phận khác có thể truy cập và thay đổi dữ liệu của bộ phận kế toán.

Khái niệm như thế về đối tượng hầu như có thể được mở rộng đối với mọi lĩnh vực trong đời sống xã hội và hơn nữa - đối với việc tổ chức chương trình. Mọi ứng dụng có the được định nghĩa như một tập các thực thể - hoặc các đối tượng, sao cho quá trình tái tạo những suy nghĩ của chúng ta là gần sát nhất về thế giới thực. Những nhược điểm cùa lập ừ ình hướng thù tục Cách tiếp cận lập trinh truyền thống là lập trinh hướng thủ tục (LTHTT). Theo cách tiếp cận này thi một hệ thống phần mềm được xem như là dãy các công việc cần thực hiện như đọc dữ liệu, tính toán, xử lý, lập báo cáo và in ấn kết quả V.

Mỗi công việc đó sẽ được thực hiện bời một số hàm nhất định. Như vậy trọng tâm của cách tiếp cận này là các hàm chức nàng. LTHTT sử dụng kỹ thuật phân rã hàm chức năng theo cách tiếp cận trên xuống (top-down) để tạo ra cấu trúc phân cấp. Các ngôn ngữ lập trình bậc cao như COBOL, FORTRAN, PASCAL, c , V., là những ngôn ngữ lập trình hướng thủ tục.

Những nhược điểm chính của LTHTT là: > Chương trinh khó kiểm soát và khó khăn trong việc bổ sung, nâng cấp chương trình. Chương trình được xây dựng theo cách tiếp cận hướng thủ tục thực chất là danh sách các câu lệnh mà theo đó máy tính cần thực hiện. Danh sách các lệnh đó được tổ chức thành từng nhóm theo đơn vị cấu trúc của ngôn ngừ lập trinh và được gọi là hàm/thủ tục. Trong chương trinh có nhiều hàm/thủ tục, thường thi có nhiều thành phần dữ liệu quan trọng sẽ được khai báo tổng thể (global) để các hàm/thủ tục có thể truy nhập, đọc và làm thay đổi giá trị của biến tổng thể.

Điều này sẽ làm cho chương trình rất khó kiểm soát, nhất là đối với các chương trình lớn, phức tạp thì vấn đề càng trờ nên khó khăn hơn. Khi ta muốn thay đổi, bổ sung cấu trúc dữ liệu dùng chung cho một số hàm/thủ tục thì phai thay đổi hầu như tất cả các hàm/thủ tục liên quan đến dữ liệu đó. > Mô hinh được xây dựng theo cách tiếp cận hướng thủ tục (TCHTT) không mô tả được đầy đủ, trung thực hệ thống trong thực tế. > Phương pháp TCHTT đặt trọng tâm vào hàm là hướng tói hoạt động sẽ không thực sự tương ứng với các thực thể trong hệ thống của thế giới thực.

Đặc điêm lập trình hưmig đối tượng Lập trình hướng đối tượng (Object Oriented Programming - OOP) là phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng thuật giải, xây dựng chương trinh. Đối tượng được xây dựng trên cơ sở gắn cấu trúc dữ liệu với các phương thức (các hàm/thù tục) sẽ thể hiện được đúng cách mà chúng ta suy nghĩ, bao quát về thế giới thực. Lập trình hướng đối tượng (LTHĐT) cho p h é p ta k ê t h ợ p n h ữ n g tri th ứ c b a o q u á t v ề các q u á trìn h với n h ữ n g khái n iệm trừu tượng được sử dụng trong máy tính. Điểm căn bản của phương pháp LTHĐT là thiết kế chương trình xoay quanh dữ liệu của hệ thống.

Nghĩa là các thao tác xử lý của hệ thống được gắn liền với dữ liệu và như vậy khi có sự thay đổi của cấu trúc dữ liệu thì chi ãnh hưởng đến một số ít các phương thức xử lý liên quan. LTHĐT không cho phép dữ liệu chuyển động tự do trong hệ thống. Dữ liệu được gan chặt với từng phương thức thành các vùng riêng mà các phương thức đó tác động lên và nó được báo vệ để cấm việc truy nhập tùy tiện từ bên 11 ngoài. LTHĐT cho phép phân tich bài toán thành tập các thực thể được aọi là các đối tượng và sau đó xây dựng các dữ liệu cùng với các phương thức xung quanh các đối tượng đó.

Tóm lại LTHĐT có những đặc tính chủ yếu như sau: 1. Tập trung vào dữ liệu thay cho các phương thức. Chương trinh được chia thành các lớp đối tượng. Các cấu trúc dữ liệu được thiết kế sao cho đặc tả được các đối tượng 4.

Các phương thức xác định trên các vùng dữ liệu của đối tượng được gắn với nhau trên cấu trúc dữ liệu đó 5. Dữ liệu được bao bọc, che giấu và không cho phép các thành phần bên ngoài truy nhập tự do. Các đối tượng trao đổi với nhau thông qua các phương thức. Dữ liệu và các phương thức mới có thể dễ dàng bổ sung vào đối tượng nào đó khi cần thiết.

8 Chương trinh được thiết kế theo cách tiếp cận bottom-up (duới - lên). Các khái niệm cơ bản cùa lập trình hướng đối tưọng Những khái niệm cơ bàn trong LTHĐT bao gồm: Đối tượng; Lóp; Trừu tượng hóa dữ liệu, bao gói thông tin; Ke thừa; Tương ứng bội; Liên kết động; Truyền th ò n g báo 1. Đối tượììg Trong thế giới thực, khái niệm đối tượng được hiểu như là một thực thể, nó có thể là người, vật hoặc một bảng dữ liệu cần xử lý trong chương trình,. Trong LTHĐT thì đối tượng là biến thể hiện của lớp.

Lớp Lớp là một khái niệm mới trong LTHĐT so với kỹ thuật LTHTT. Nó là một bản mẫu mô tả các thông tin cấu trúc dữ liệu và các thao tác hợp lệ của các 12 phần tử dữ liệu. Khi một phần tử dữ liệu được khai báo là phần tử của một lớp thi nó được gọi là đoi tượng Các hàm được định nghĩa hợp lệ trong một lớp được gọi là các phương thức (method) và chúng là các hàm duy nhất có thể xử lý dữ liệu của các đối tượng của lớp đó. Chẳng hạn, chúng ta xét lớp HENH_CN bao gồm các thuộc tính: (x l,y l) toạ độ góc trên bên trái, d, r là chiều dài và chiều rộng của hình chữ nhật (HCN).

Các phương thức nhập số liệu cho HCN, hàm tính diện tích, chu vi và hàm hiển thị. Lớp HINH_CN có thể được mô tả như sau: H IN H C N Thuộc tính : X1,y 1 d,r Phưong thức: Nhập_sl Diện tích Chu vi Hiển thị Hình 1. Mô ta lóp HINH CN 1. T rừ u tuỊ/rig h ó a d ữ liệ u và b a o g ó i íỉtủtig tin Trừu tượng hóa là cách biểu diễn những đặc tính chính và bỏ qua những chi tiết nhỏ hoặc những giải thích.

Khi xây dựng các lớp, ta phải sừ dụng khái niệm trừu tượng hóa. Ví dụ ta có thể định nghĩa một lớp để mô tả các đối tượng trong không gian hình học bao gồm các thuộc tính trừu tượng như là kích thước, hình dáng, màu sắc và các phương thức xác định trên các thuộc tính này. Việc đóng gói dữ liệu và các phương thức vào một đơn vị cấu trúc lớp được xem như một nguyên tắc bao gói thông tin. Dữ liệu được tổ chức sao cho thế giới bên ngoài (các đối tượng ờ lớp khác) không truy nhập vào, mà chỉ cho phép các phương thức trong cùng lớp hoặc trong những lớp có quan hệ kế thừa với nhau mới được quyền truy nhập.

Chính các phương thức của lớp sẽ đóng vai ữò như là giao diện giữa dữ liệu của đối tượng và phần còn lại của chương trình. Nguyên tắc bao gói dữ liệu để ngân cấm sự truy nhập trực tiếp trong lập trinh được gọi là sự che giấu thông tin. Kế thừa Kế thừa là quá trình mà các đối tượng cùa lớp này được quyền sử dụng một số tính chất của các đối tượng của lớp khác. Sự kế thừa cho phép ta định nghĩa một lớp mới trên cơ sỡ các lớp đã tồn tại.

Lớp mới này, ngoài những thành phần được kế thừa, sẽ có thêm những thuộc tính và các hàm mới. Nguyên ]ý kế thừa hỗ ơợ cho việc tạo ra cấu trúc phân cấp các lớp. Ví dụ: Xây dựng một tập các lớp mô tả cho thư viện các ấn phẩm. Có hai kiểu ấn phẩm: tạp chí và sách.

Chúng ta tạo một ấn phẩm tổng quát bằng cách định nghĩa các thành phần dữ liệu tương ứng với số trang, mã số tra tra cứu, ngày tháng xuất bản, bản quyền và nhà xuất bản. Các ấn phẩm có thể được lấy ra, cất đi và đọc. Đó là các phương thức thực hiện ữên một ẩn phẩm. Tiếp theo ta định nghĩa hai lớp dẫn xuất tên là tạp chí và sách.

Tạp chí có tên, số kỳ phát hành và chứa nhiều bài của các tác giả khác nhau. Các thành phần dữ liệu tương ứng với các yếu tố này được đặt vào định nghĩa của lớp tạp chí. Tạp chí cũng cần có một phương thức nữa đó là đặt mua.

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

Tài liệu Giáo Trình Lập Trình Hướng Đối Tượng - Phần 1 cung cấp một cái nhìn tổng quan về lập trình hướng đối tượng (OOP), một phương pháp lập trình quan trọng trong phát triển phần mềm hiện đại. Tài liệu này không chỉ giải thích các khái niệm cơ bản như lớp, đối tượng, kế thừa và đa hình, mà còn hướng dẫn người đọc cách áp dụng những khái niệm này vào thực tế thông qua các ví dụ cụ thể.

Độc giả sẽ được hưởng lợi từ việc nắm vững các nguyên tắc OOP, giúp họ phát triển kỹ năng lập trình một cách hiệu quả hơn. Để mở rộng kiến thức của mình, bạn có thể tham khảo thêm tài liệu Giáo trình lập trình hướng đối tượng nghề tin học ứng dụng cao đẳng, nơi cung cấp thông tin chi tiết về OOP trong ngữ cảnh của Java. Ngoài ra, tài liệu Sổ tay kiến thức oop sẽ giúp bạn củng cố thêm kiến thức và kỹ năng lập trình hướng đối tượng. Cuối cùng, bạn cũng có thể tìm hiểu về Giáo trình lập trình hướng đối tượng dành cho bậc cao đẳng ngành công nghệ thông tin để có cái nhìn sâu hơn về ứng dụng OOP trong lĩnh vực công nghệ thông tin.

Những tài liệu này sẽ là cơ hội tuyệt vời để bạn khám phá sâu hơn về lập trình hướng đối tượng và nâng cao kỹ năng của mình.