
Bài giảng Kỹ thuật lập trình: Lập trình hướng đối tượng - ThS. Trần Ngọc Bảo Duy
lượt xem 1
download

Bài giảng Kỹ thuật lập trình - "Lập trình hướng đối tượng", được biên soạn gồm các nội dung chính sau: Tại sao phải có Lập trình hướng đối tượng; Các khái niệm cơ bản; Nguyên tắc thiết kế lớp; Phương thức đặc biệt;...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 Kỹ thuật lập trình: Lập trình hướng đối tượng - ThS. Trần Ngọc Bảo Duy
- OOP (P.1) ThS. Trần Ngọc Bảo Duy Lập trình hướng đối tượng (P.1) Tại sao phải có LTHĐT? Các khái niệm cơ bản Kỹ thuật Lập trình (CO1027) Khái niệm Con trỏ this Ngày 25 tháng 4 năm 2021 Tính khả kiến Thiết kế lớp Phương thức đặc biệt Hàm khởi tạo Hàm hủy ThS. Trần Ngọc Bảo Duy Định nghĩa toán tử Khoa Khoa học và Kỹ thuật Máy tính Trường Đại học Bách Khoa, ĐHQG-HCM OOP (P.1).1
- OOP (P.1) Tổng quan ThS. Trần Ngọc Bảo Duy 1 Tại sao phải có LTHĐT? 2 Các khái niệm cơ bản Tại sao phải có LTHĐT? Khái niệm Các khái niệm cơ bản Con trỏ this Khái niệm Tính khả kiến Con trỏ this Tính khả kiến Thiết kế lớp 3 Nguyên tắc thiết kế lớp Phương thức đặc biệt Hàm khởi tạo Hàm hủy Định nghĩa toán tử 4 Phương thức đặc biệt Hàm khởi tạo Hàm hủy Định nghĩa toán tử OOP (P.1).2
- OOP (P.1) So sánh chuỗi giữa C và C++ ThS. Trần Ngọc Bảo Duy 1 int main () { 2 char * str1 = " Bach ␣ Khoa " ; Tại sao phải có 3 cout
- OOP (P.1) So sánh chuỗi giữa C và C++ ThS. Trần Ngọc Bảo Duy 1 int main () { 2 char * str1 = " Bach ␣ Khoa " ; Tại sao phải có 3 cout
- OOP (P.1) So sánh chuỗi giữa C và C++ ThS. Trần Ngọc Bảo Duy 1 int main () { 2 char * str1 = " Bach ␣ Khoa " ; 3 cout
- OOP (P.1) So sánh chuỗi giữa C và C++ ThS. Trần Ngọc Bảo Duy 1 int main () { 2 char * str1 = " Bach ␣ Khoa " ; 3 cout
- OOP (P.1) Kiểu struct trong C ThS. Xét đoạn chương trình: Trần Ngọc Bảo Duy 1 struct Date { 2 int day , month , year ; 3 }; 4 Tại sao phải có 5 int main () { LTHĐT? 6 int a ; Các khái niệm cơ bản 7 double d ; Khái niệm 8 Date c = { 17 , 4 , 2021 }; Con trỏ this Tính khả kiến 9 Thiết kế lớp 10 return 0; 11 } Phương thức đặc biệt Hàm khởi tạo Hàm hủy Định nghĩa toán tử OOP (P.1).4
- OOP (P.1) Kiểu struct trong C ThS. Xét đoạn chương trình: Trần Ngọc Bảo Duy 1 struct Date { 2 int day , month , year ; 3 }; 4 Tại sao phải có 5 int main () { LTHĐT? 6 int a ; Các khái niệm cơ bản 7 double d ; Khái niệm 8 Date c = { 17 , 4 , 2021 }; Con trỏ this Tính khả kiến 9 Thiết kế lớp 10 return 0; 11 } Phương thức đặc biệt Hàm khởi tạo Hàm hủy Bộ biên dịch cấp phát 3 vùng nhớ có tên: a, d, và c trên Định nghĩa toán tử STACK: 1 d: 4 bytes 2 d: 8 bytes 3 c: 12 bytes OOP (P.1).4
- OOP (P.1) Kiểu struct trong C ThS. Xét đoạn chương trình: Trần Ngọc Bảo Duy 1 struct Date { 2 int day , month , year ; 3 }; 4 Tại sao phải có 5 int main () { LTHĐT? 6 int a ; Các khái niệm cơ bản 7 double d ; Khái niệm 8 Date c = { 17 , 4 , 2021 }; Con trỏ this Tính khả kiến 9 Thiết kế lớp 10 return 0; 11 } Phương thức đặc biệt Hàm khởi tạo Hàm hủy Bộ biên dịch cấp phát 3 vùng nhớ có tên: a, d, và c trên Định nghĩa toán tử STACK: 1 d: 4 bytes 2 d: 8 bytes 3 c: 12 bytes Cả 3 vùng nhớ này đều THỤ ĐỘNG, CHỈ CÓ CÔNG NĂNG LÀ CHỨA các giá trị của kiểu được mô tả. OOP (P.1).4
- OOP (P.1) Kiểu struct trong C ThS. Trần Ngọc Bảo Duy Vì thụ động, nên khi cần xử lý dữ liệu, thực hiện: • Tạo ra hàm • Gọi hàm và truyền dữ liệu vào Tại sao phải có LTHĐT? Các khái niệm cơ bản Khái niệm Con trỏ this Tính khả kiến Thiết kế lớp Phương thức đặc biệt Hàm khởi tạo Hàm hủy Định nghĩa toán tử OOP (P.1).5
- OOP (P.1) Kiểu struct trong C ThS. Trần Ngọc Bảo Duy Vì thụ động, nên khi cần xử lý dữ liệu, thực hiện: • Tạo ra hàm • Gọi hàm và truyền dữ liệu vào: Ví dụ như hàm print. Tại sao phải có LTHĐT? 1 struct Date { int day , month , year ; }; Các khái niệm cơ bản Khái niệm 2 Con trỏ this 3 void print ( Date & d ) { Tính khả kiến 4 cout
- OOP (P.1) Nhược điểm của tính thụ động ThS. Trần Ngọc Bảo Duy Xét ví dụ sau: Tại sao phải có 1 struct Date { int day , month , year ; } LTHĐT? 2 Các khái niệm cơ bản 3 void change ( Date & d ) { Khái niệm Con trỏ this 4 d . day = 32; Tính khả kiến 5 } Thiết kế lớp 6 Phương thức đặc biệt 7 int main () { Hàm khởi tạo 8 Date c = {20 , 5 , 2017}; Hàm hủy Định nghĩa toán tử 9 change ( c ); 10 } OOP (P.1).6
- OOP (P.1) Nhược điểm của tính thụ động ThS. Trần Ngọc Bảo Duy Xét ví dụ sau: 1 struct Date { int day , month , year ; } 2 Tại sao phải có LTHĐT? 3 void change ( Date & d ) { 4 d . day = 32; Các khái niệm cơ bản Khái niệm 5 } Con trỏ this 6 Tính khả kiến 7 int main () { Thiết kế lớp 8 Date c = {20 , 5 , 2017}; Phương thức đặc biệt 9 change ( c ); Hàm khởi tạo Hàm hủy 10 } Định nghĩa toán tử Nếu có một hàm change như trên, trong thân hàm, thay đổi giá trị của d truyền vào thành 32, thì chính d cũng không thể kháng cự lại được. OOP (P.1).6
- OOP (P.1) Nhược điểm của tính thụ động ThS. Trần Ngọc Bảo Duy Xét ví dụ sau: 1 struct Date { int day , month , year ; } 2 3 void change ( Date & d ) { Tại sao phải có LTHĐT? 4 d . day = 32; 5 } Các khái niệm cơ bản Khái niệm 6 Con trỏ this 7 int main () { Tính khả kiến 8 Date c = {20 , 5 , 2017}; Thiết kế lớp 9 change ( c ); Phương thức đặc biệt 10 } Hàm khởi tạo Hàm hủy Định nghĩa toán tử Nhược điểm của tính thụ động 1 Khó đảm bảo được ràng buộc trên dữ liệu. 2 Khó biết được dữ liệu có thể được xử lý bởi hàm nào. OOP (P.1).6
- OOP (P.1) Nhược điểm của tính thụ động ThS. Xét ví dụ sau: Trần Ngọc Bảo Duy 1 struct Date { int day , month , year ; } 2 3 void change ( Date & d ) { 4 d . day = 32; Tại sao phải có LTHĐT? 5 } 6 Các khái niệm cơ bản Khái niệm 7 int main () { Con trỏ this 8 Date c = {20 , 5 , 2017}; Tính khả kiến 9 change ( c ); Thiết kế lớp 10 } Phương thức đặc biệt Hàm khởi tạo Hàm hủy Định nghĩa toán tử Nhược điểm của tính thụ động 1 Khó đảm bảo được ràng buộc trên dữ liệu. 2 Khó biết được dữ liệu có thể được xử lý bởi hàm nào. Lập trình hướng đối tượng có tính chất đóng gói (encap- sulation) có thể giải quyết được vấn đề trên. OOP (P.1).6
- OOP (P.1) Các khái niệm cơ bản ThS. Trần Ngọc Bảo Duy Tại sao phải có LTHĐT? Các khái niệm cơ bản 1 Lớp (class): là một kiểu dữ liệu do người lập trình tạo Khái niệm Con trỏ this ra, tương tự với struct. Tính khả kiến Thiết kế lớp Phương thức đặc biệt Hàm khởi tạo Hàm hủy Định nghĩa toán tử OOP (P.1).7
- OOP (P.1) Các khái niệm cơ bản ThS. Trần Ngọc Bảo Duy 1 Lớp (class): là một kiểu dữ liệu do người lập trình tạo Tại sao phải có LTHĐT? ra, tương tự với struct. Các khái niệm cơ bản Khái niệm 2 Đối tượng (object, instance): là một biến tạo ra từ Con trỏ this Tính khả kiến kiểu lớp. Thiết kế lớp Ví dụ: Giả sử ta có lớp X. Phương thức đặc biệt Lệnh X c; sẽ tạo ra một đối tượng, đặt tên là c có Hàm khởi tạo Hàm hủy kiểu là X, nghĩa là có một vùng nhớ tên c được tạo ra. Định nghĩa toán tử OOP (P.1).7
- OOP (P.1) Các khái niệm cơ bản ThS. Trần Ngọc Bảo Duy 1 Lớp (class): là một kiểu dữ liệu do người lập trình tạo ra, tương tự với struct. Tại sao phải có 2 Đối tượng (object, instance): là một biến tạo ra từ LTHĐT? kiểu lớp. Các khái niệm cơ bản Khái niệm Ví dụ: Giả sử ta có lớp X. Con trỏ this Lệnh X c; sẽ tạo ra một đối tượng, đặt tên là c có Tính khả kiến Thiết kế lớp kiểu là X, nghĩa là có một vùng nhớ tên c được tạo ra. Phương thức đặc biệt Hàm khởi tạo Phân biệt giữa lớp và đối tượng Hàm hủy Định nghĩa toán tử • Lớp như cái khuôn để từ đó tạo ra các đối tượng. • Đối tượng là một biến cụ thể mang kiểu là lớp đối tượng đó. OOP (P.1).7
- OOP (P.1) Các khái niệm cơ bản ThS. Trần Ngọc Bảo Duy Tại sao phải có LTHĐT? Các khái niệm cơ bản 3 Mô tả lớp có gì khác mô tả một struct trong C? Khái niệm Con trỏ this Khi mô tả kiểu này, cần mô tả: Tính khả kiến Thiết kế lớp Phương thức đặc biệt Hàm khởi tạo Hàm hủy Định nghĩa toán tử OOP (P.1).7
- OOP (P.1) Các khái niệm cơ bản ThS. Trần Ngọc Bảo Duy Tại sao phải có 3 Mô tả lớp có gì khác mô tả một struct trong C? LTHĐT? Khi mô tả kiểu này, cần mô tả: Các khái niệm cơ bản Khái niệm 1 Các dữ liệu (thuộc tính - attributes) mà một đối Con trỏ this Tính khả kiến tượng của lớp phải có. Thiết kế lớp Ví dụ: Một đối tượng thuộc lớp Cat (để mô tả con Phương thức đặc biệt mèo) phải có chiều cao, cân nặng, màu sắc, ... Hàm khởi tạo Hàm hủy Định nghĩa toán tử OOP (P.1).7

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p |
36 |
2
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - Trịnh Tấn Đạt (2024)
63 p |
6 |
2
-
Bài giảng Kỹ thuật lập trình: Các kỹ thuật lập trình nâng cao - Trịnh Tấn Đạt (2024)
86 p |
5 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p |
41 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p |
34 |
2
-
Bài giảng Kỹ thuật lập trình: Các phương pháp giải quyết bài toán trên máy tính - Trịnh Tấn Đạt (2024)
22 p |
6 |
1
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - Trịnh Tấn Đạt (2024)
32 p |
6 |
1
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Đặng Bình Phương
7 p |
31 |
0
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 2) - ThS. Đặng Bình Phương
30 p |
21 |
0
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 1) - ThS. Đặng Bình Phương
26 p |
25 |
0
-
Bài giảng Kỹ thuật lập trình: Các kỹ thuật thao tác trên bit - ThS. Đặng Bình Phương
29 p |
29 |
0
-
Bài giảng Kỹ thuật lập trình: Tập tin - ThS. Đặng Bình Phương
48 p |
27 |
0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu cấu trúc - ThS. Đặng Bình Phương
33 p |
27 |
0
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 p |
30 |
0
-
Bài giảng Kỹ thuật lập trình: Danh sách liên kết - ThS. Đặng Bình Phương
20 p |
27 |
0
-
Bài giảng Kỹ thuật lập trình: Chuyển đổi kiểu dữ liệu và cấp phát bộ nhớ động - ThS. Đặng Bình Phương
28 p |
30 |
0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Nâng cao) - ThS. Đặng Bình Phương
48 p |
30 |
0
-
Bài giảng Kỹ thuật lập trình: Kỹ thuật lập trình đệ quy - ThS. Đặng Bình Phương
44 p |
29 |
0


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
