Bài giảng Kỹ thuật lập trình C/C++: Chương 10 (1) - Lê Thành Sách
Số trang: 117
Loại file: pdf
Dung lượng: 671.65 KB
Lượt xem: 9
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 "Kỹ thuật lập trình C/C++ - Chương 10: Lập trình hướng đối tượng" phần cơ bản giúp người học nắm bắt các khái niệm cơ bản, các thuật ngữ, tính khả kiến, thiết kế lớp, hàm khởi tạo và hàm hủy, định nghĩa lại toán tử,... 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 Kỹ thuật lập trình C/C++: Chương 10 (1) - Lê Thành Sách Chương 10 Lập trình hướng đối tượng --Cơ bản-- Lê Thành SáchTrường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Nội dung n Kiểu dữ liệu trong C - Ôn lại n Các khái niệm cơ bản n Con trỏ this n Tổng hợp các thuật ngữ (I) n Tính khả kiến n Thiết kế lớp n Hàm khởi tạo và hàm huỷ n Định nghĩa lại toán tử n Thành viên có tính “static” n Thành viên có tính “const” n Tổng hợp các thuật ngữ (II) n Quan hệ bạn bè (friendship) n Tổ chức mã nguồn cho lớp n Biễu diễn lớp bằng sơ đồ n Tổng kếtTrường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Kiểu dữ liệu trong C n Xét đoạn chương trình typedef struct{ int day, month, year; Bộ biên dịch cấp phát 3 vùng nhớ có } Date; tên: a, d, và c trên STACK: int main(int argc, char** argv) { a: 4 bytes à dùng sizeof(.) cho cụ thể. int a; d: 8 bytes double d; c: 12 bytes Date c = {20, 5, 2017}; Cả 3 vùng nhớ này đều THỤ ĐỘNG, return 0; CHỈ CÓ CÔNG NĂNG LÀ CHỨA các giá } trị của kiểu được mô tả.Trường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Kiểu dữ liệu trong C typedef struct{ int day, month, year; } Date; void print(Date& d){ cout Kiểu dữ liệu trong C typedef struct{ int day, month, year; } Date; void print(Date& d){ cout Kiểu dữ liệu trong C n Nhược điểm là gì? n Khó biết được dữ liệu có thể được xử lý bởi hàm nào. n Khó đảm bảo ràng buộc trên dữ liệu, ví dụ: n Ngày: 1 à 31 (tuỳ tháng, tối đa) n Tháng: 1 à 12 Chỉ cần tính chất về “đóng gói” (enscapsulation) của lập trình hướng đối tượng (OOP) đã giải quyết những vấn đề trên. Hơn nữa, ngoài tính “đóng gói”, OOP còn cung cấp những tính năng hay khác nữa mà ngôn ngữ C không có.Trường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Khái niệm cơ bản n (Q.1) Lớp (class): n Là một kiểu dữ liệu do người lập trình tạo ra. n Quan niệm: Lớp như cái khuôn để từ đó tạo ra các đối tượng như nói sau. n (Q.2) Đối tượng (object, instance): n Là một biến tạo ra từ kiểu lớp. n Ví dụ: n Giả sử đã có lớp MyClass n Dòng: MyClass c; n Sẽ tạo ra một đối tượng, đặt tên là “c”, nghĩa là một vùng nhớ có tên là “c”.Trường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Khái niệm cơ bản n (Q.3) Mô tả lớp có gì khác mô tả một cấu trúc trong C (struct) n Khi mô tả kiểu này, cần mô tả n Các dữ liệu mà một đối tượng của lớp có. n Các hàm (phương thức) có thể thực thi với đối tượng của lớp. n Những hành động mà một đối tượng của lớp đó có thể thực hiện à tính chủ động của đối tượng (không chỉ là vùng nhớ thụ động) Với kiểu struct (của C): Mô tả kiểu này không có mô tả hàm/phương thức như kiểu lớp!Trường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và ...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình C/C++: Chương 10 (1) - Lê Thành Sách Chương 10 Lập trình hướng đối tượng --Cơ bản-- Lê Thành SáchTrường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Nội dung n Kiểu dữ liệu trong C - Ôn lại n Các khái niệm cơ bản n Con trỏ this n Tổng hợp các thuật ngữ (I) n Tính khả kiến n Thiết kế lớp n Hàm khởi tạo và hàm huỷ n Định nghĩa lại toán tử n Thành viên có tính “static” n Thành viên có tính “const” n Tổng hợp các thuật ngữ (II) n Quan hệ bạn bè (friendship) n Tổ chức mã nguồn cho lớp n Biễu diễn lớp bằng sơ đồ n Tổng kếtTrường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Kiểu dữ liệu trong C n Xét đoạn chương trình typedef struct{ int day, month, year; Bộ biên dịch cấp phát 3 vùng nhớ có } Date; tên: a, d, và c trên STACK: int main(int argc, char** argv) { a: 4 bytes à dùng sizeof(.) cho cụ thể. int a; d: 8 bytes double d; c: 12 bytes Date c = {20, 5, 2017}; Cả 3 vùng nhớ này đều THỤ ĐỘNG, return 0; CHỈ CÓ CÔNG NĂNG LÀ CHỨA các giá } trị của kiểu được mô tả.Trường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Kiểu dữ liệu trong C typedef struct{ int day, month, year; } Date; void print(Date& d){ cout Kiểu dữ liệu trong C typedef struct{ int day, month, year; } Date; void print(Date& d){ cout Kiểu dữ liệu trong C n Nhược điểm là gì? n Khó biết được dữ liệu có thể được xử lý bởi hàm nào. n Khó đảm bảo ràng buộc trên dữ liệu, ví dụ: n Ngày: 1 à 31 (tuỳ tháng, tối đa) n Tháng: 1 à 12 Chỉ cần tính chất về “đóng gói” (enscapsulation) của lập trình hướng đối tượng (OOP) đã giải quyết những vấn đề trên. Hơn nữa, ngoài tính “đóng gói”, OOP còn cung cấp những tính năng hay khác nữa mà ngôn ngữ C không có.Trường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Khái niệm cơ bản n (Q.1) Lớp (class): n Là một kiểu dữ liệu do người lập trình tạo ra. n Quan niệm: Lớp như cái khuôn để từ đó tạo ra các đối tượng như nói sau. n (Q.2) Đối tượng (object, instance): n Là một biến tạo ra từ kiểu lớp. n Ví dụ: n Giả sử đã có lớp MyClass n Dòng: MyClass c; n Sẽ tạo ra một đối tượng, đặt tên là “c”, nghĩa là một vùng nhớ có tên là “c”.Trường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Khái niệm cơ bản n (Q.3) Mô tả lớp có gì khác mô tả một cấu trúc trong C (struct) n Khi mô tả kiểu này, cần mô tả n Các dữ liệu mà một đối tượng của lớp có. n Các hàm (phương thức) có thể thực thi với đối tượng của lớp. n Những hành động mà một đối tượng của lớp đó có thể thực hiện à tính chủ động của đối tượng (không chỉ là vùng nhớ thụ động) Với kiểu struct (của C): Mô tả kiểu này không có mô tả hàm/phương thức như kiểu lớp!Trường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Kỹ thuật lập trình Kỹ thuật lập trình Lập trình C Lập trình C++ Ngôn ngữ lập trình Lập trình hướng đối tượng Thiết kế lớpTài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 277 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 268 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 268 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 232 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 227 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 218 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 210 0 0 -
101 trang 200 1 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 197 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 188 0 0