intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:88

5
lượt xem
1
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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!

Chủ đề:
Lưu

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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
64=>1