Bài giảng Phương pháp lập trình hướng đối tượng: Hàm dựng, hàm hủy, hàm toán tử
lượt xem 4
download
Bài giảng này giới thiệu về hàm dựng, hàm hủy, hàm toán tử trong lập trình hướng đối tượng. Ngoài trình bày các kiến thức về ba hàm nêu trên, trong bài giảng này còn cung cấp một số bài tập giúp người học củng cố và nắm chắc kiến thức trong bài giảng. 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 Phương pháp lập trình hướng đối tượng: Hàm dựng, hàm hủy, hàm toán tử
- Hàm dựng, Hàm hủy, Hàm toán tử Phương pháp lập trình hướng đối tượng . 1
- Nội dung Hàm dựng. Hàm hủy. Hàm toán tử. Bài tập. Phương pháp lập trình hướng đối tượng . 2
- Nội dung Hàm dựng. Hàm hủy. Hàm toán tử. Bài tập. Phương pháp lập trình hướng đối tượng . 3
- Hàm dựng Khi đối tượng vừa được tạo: Giá trị các thuộc tính bằng bao nhiêu? Đối tượng cần có thông tin ban đầu. Giải pháp: Xây dựng phương thức cung cấp thông tin. Người dùng quên gọi?! “Làm khai sinh” cho đối tượng! PhanSo HocSinh Tửsố?? Họ tên?? Mẫu số?? Điểm văn?? Điểm toán?? Hàm dựng ra đời!! Phương pháp lập trình hướng đối tượng . 4
- Hàm dựng Tính chất hàm dựng (constructor): Bắt buộc gọi khi tạo đối tượng. Có thể nạp chồng nhiều hàm dựng. Trong C++, hàm dựng có tên trùng tên lớp. class PhanSo void main() { { private: PhanSo p1(1, 2); int m_tuSo; PhanSo p2(2, 3); int m_mauSo; PhanSo *p3 = new PhanSo(2, 3); public: } PhanSo(int tuSo, int mauSo); PhanSo(int giaTri); }; Phương pháp lập trình hướng đối tượng . 5
- Hàm dựng Hàm dựng mặc định (default constructor): Không có tham số. Dùng tạo đối tượng với thông tin mặc định. Lớp không có hàm dựng. Trình biên dịch cung cấp. class PhanSo { void main() private: { int m_tuSo; PhanSo p; int m_mauSo; PhanSo q = new PhanSo; public: } PhanSo(); }; Phương pháp lập trình hướng đối tượng . 6
- Hàm dựng Hàm dựng sao chép (copy constructor): Có tham số là đối tượng cùng lớp. Dùng tạo đối tượng từ đối tượng cùng loại. Lớp không có hàm dựng sao chép. Trình biên dịch cung cấp. class PhanSo void main() { { private: PhanSo p1(1, 2); int m_tuSo; PhanSo p2(p1); int m_mauSo; PhanSo p3 = p2; public: } PhanSo(const PhanSo &p); }; Phương pháp lập trình hướng đối tượng . 7
- Hàm dựng Dr. Guru khuyên: Một lớp nên có tối thiểu 3 hàm dựng: Hàm dựng mặc định. Hàm dựng có đầy đủ tham số. Hàm dựng sao chép. class PhanSo { private: int m_tuSo; int m_mauSo; public: PhanSo(); PhanSo(int tuSo, int mauSo); PhanSo(const PhanSo &p); }; Phương pháp lập trình hướng đối tượng . 8
- Nội dung Hàm dựng. Hàm hủy. Hàm toán tử. Bài tập. Phương pháp lập trình hướng đối tượng . 9
- Hàm hủy Vấn đề rò rỉ bộ nhớ (memory leak): Khi hoạt động, đối tượng có cấp phát bộ nhớ. Khi hủy đi, bộ nhớ không được thu hồi!! Giải pháp: Xây dựng phương thức thu hồi. Người dùng quên gọi! Làm “khai tử” cho đối tượng. HocSinh Rò Ròrỉrỉbộ bộnhớ!! nhớ!! Họ tên Điểm văn Điểm toán Thu hồi Hàm hủy vào cuộc!! Phương pháp lập trình hướng đối tượng . 10
- Hàm hủy Tính chất hàm hủy (destructor): Tự động gọi khi đối tượng bị hủy. Mỗi lớp có duy nhất một hàm hủy. Trong C++, hàm hủy có tên ~ class HocSinh { void main() private: { char *m_hoTen; HocSinh h; float m_diemVan; HocSinh *p = new HocSinh; float m_diemToan; delete p; public: } ~HocSinh() { delete m_hoTen; } }; Phương pháp lập trình hướng đối tượng . 11
- Nội dung Hàm dựng. Hàm hủy. Hàm toán tử. Bài tập. Phương pháp lập trình hướng đối tượng . 12
- Hàm toán tử Khái niệm hàm toán tử: Có thể dùng toán tử đặt tên hàm? Trong C++, dùng từ khóa operator. PhanSo operator +(const PhanSo &p1, const PhanSo &p2); Hệ quả? Định nghĩa lại cách thực hiện toán tử. PhanSo p1, p2; PhanSo p3 = p1 + p2; Định nghĩa nhiều cách thực hiện khác nhau cho toán tử bằng nạp chồng hàm. PhanSo operator +(const PhanSo &p, int so); float opeartor +(const PhanSo &p, float so); Phương pháp lập trình hướng đối tượng . 13
- Hàm toán tử Ưu điểm: Thực hiện toán tử trên kiểu dữ liệu tự định nghĩa. PhanSo p1, p2; HocSinh h1, h2; PhanSo p3 = p1 + p2; if (h1 > h2) h1++; Hạn chế: Không thể tạo toán tử mới. Không thể định nghĩa lại toán tử trên kiểu cơ bản. Ngôi của toán tử giữ nguyên. Độ ưu tiên của toán tử không đổi. Đôi khi gây nhầm lẫn!! Phương pháp lập trình hướng đối tượng . 14
- Hàm toán tử Phân loại hàm toán tử: Toán tử độc lập: Không thuộc lớp nào. Ngôi của toán tử là số tham số truyền vào. PhanSo operator +(const PhanSo &p1, const PhanSo &p2); bool operator >(const PhanSo &p1, const PhanSo &p2); Toán tử thuộc lớp: Là phương thức của lớp. Ngôi của toán tử: đối tượng của lớp + số tham số. PhanSo PhanSo::operator +(const PhanSo &p); bool PhanSo::operator >(const PhanSo &p); Cách sử dụng 2 loại là như nhau!! Phương pháp lập trình hướng đối tượng . 15
- Hàm toán tử Toán tử có thể định nghĩa lại: Ngôi Nhóm Toán tử 1 Ngôi (Unary) Tăng giảm ++, -- Dấu số học +, - Logic !, ~ Con trỏ *, & Ép kiểu int, float, double, … 2 Ngôi (Binary) Số học +, -, *, /, %, +=, -=, *=, /=, %= So sánh >, =,
- Hàm toán tử Toán tử không thể định nghĩa lại: Toán tử Ý nghĩa . Truy xuất phần tử .* Truy xuất con trỏ phần tử :: Toán tử :: ?: Toán tử điều kiện # Chỉ thị tiền xử lý ## Chỉ thị tiền xử lý Phương pháp lập trình hướng đối tượng . 17
- Hàm toán tử Dr. Guru khuyên: Những lưu ý khi định nghĩa lại toán tử: Ngôi: số lượng tham số. Toán hạng: kiểu dữ liệu tham số. Kết quả: kiểu trả về. Ví dụ: Toán tử >. Toán tử =. Toán tử [ ]. Phương pháp lập trình hướng đối tượng . 18
- Tóm tắt Hàm dựng: Khởi tạo thông tin ban đầu cho đối tượng. Bắt buộc gọi khi tạo đối tượng. Mỗi lớp có thể có nhiều hàm dựng. Hàm hủy: Dọn dẹp bộ nhớ cho đối tượng. Tự động gọi khi đối tượng bị hủy. Mỗi lớp có duy nhất một hàm hủy. Phương pháp lập trình hướng đối tượng . 19
- Tóm tắt Hàm toán tử: Hàm có tên là toán tử. Dùng định nghĩa lại toán tử. Ràng buộc: Ngôi của toán tử giữ nguyên. Độ ưu tiên của toán tử không đổi. Không thể tạo toán tử mới. Không thể định nghĩa lại toán tử cho kiểu cơ bản. Có 2 loại hàm toán tử: Toán tử độc lập. Toán tử thuộc lớp. Phương pháp lập trình hướng đối tượng . 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Phương pháp lập trình: Chương 1 - GV. Từ Thị Xuân Hiền
18 p | 132 | 17
-
Bài giảng Phương pháp lập trình: Chương 2 - GV. Từ Thị Xuân Hiền
50 p | 108 | 15
-
Bài giảng Phương pháp lập trình: Chương 6 - GV. Từ Thị Xuân Hiền
39 p | 105 | 15
-
Bài giảng Phương pháp lập trình: Chương 3 - GV. Từ Thị Xuân Hiền
29 p | 118 | 12
-
Bài giảng Phương pháp lập trình: Chương 5 - GV. Từ Thị Xuân Hiền
37 p | 115 | 12
-
Bài giảng Phương pháp lập trình: Chương 4 - GV. Từ Thị Xuân Hiền
19 p | 104 | 11
-
Bài giảng Phương pháp lập trình: Chương 7 - GV. Từ Thị Xuân Hiền
18 p | 118 | 11
-
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 p | 101 | 10
-
Bài giảng Phương pháp lập trình: Chương 3
23 p | 115 | 10
-
Bài giảng Phương pháp lập trình: Chương 8 - GV. Từ Thị Xuân Hiền
25 p | 102 | 10
-
Bài giảng Phương pháp lập trình: Chương 6 (tiếp theo)
43 p | 85 | 9
-
Bài giảng Phương pháp lập trình: Chương 4
9 p | 96 | 6
-
Bài giảng Phương pháp lập trình hướng đối tượng: Bài tập 5 - Trần Phước Tuấn
4 p | 114 | 6
-
Bài giảng Phương pháp lập trình: Chương 7
16 p | 71 | 4
-
Bài giảng Phương pháp lập trình - Chương 1: Phương pháp lập trình (2016)
64 p | 73 | 4
-
Bài giảng Phương pháp lập trình: Bài 2 - TS. Ngô Hữu Dũng
45 p | 73 | 4
-
Bài giảng Phương pháp lập trình: Bài 4 - TS. Ngô Hữu Dũng
51 p | 92 | 4
-
Bài giảng Phương pháp lập trình: Bài 11 - TS. Ngô Hữu Dũng
42 p | 62 | 3
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