Bài giảng Lập trình hướng đối tượng - Chương 3: Constructor, Destructor, Getter, Setter - Nguyễn Việt Nam Sơn

Constructor & Destructor  
Getter & Setter  
1
Constructor - Destructor - Getter - Setter  
2
1. PHƯƠNG THỨC KHỞI TẠO (CONSTRUCTOR)  
2. PHƯƠNG THỨC PHÁ HỦY (DESTRUCTOR)  
3. GIẢI ĐÁP NHỮNG LƯU Ý  
4. GETTER & SETTER  
5. BÀI TẬP Ứ NG DỤNG TẠI LỚP  
6. BÀI TẬP VỀ NHÀ  
Constructor - Destructor - Getter - Setter  
3
Chuyện gì sẽ xảy ra nếu như người lập trình sử dụng 1 đối  
tượng trong khi đối tượng đó chưa hề được khởi tạo ra ?  
Trả lời: Các thành phần thuộc tính của đối tượng sẽ nhận giá trị rác từ vùng  
nhớ (do còn sót lại trước đó) hoặc phải nhận 1 giá trị không mong muốn nào  
đó.  
=> Mục đích của phương thức khởi tạo đó là nhằm khởi tạo các thành  
phần dữ liệu (thuộc tính) của đối tượng.  
Câu Lệnh Điều Kiện - Câu Lệnh Rẽ Nhánh  
4
1. Tên phương thức trùng với tên lớp và không trả về giá trị (nhưng có  
thể có tham số nhé).  
2. Tự động được gọi thực thi ngay khi đối tượng của lớp đó được tạo  
lập ra (có bao nhiêu đối tượng được tạo ra thì sẽ có bấy nhiêu lần  
phương thức đó được gọi thực thi).  
3. Có thể có nhiều phương thức khởi tạo bên trong 1 lớp (cơ chế nạp  
chồng overloading do phân biệt nhau qua tham số truyền vào).  
Constructor - Destructor - Getter - Setter  
5
1.Phương thức khởi tạo mặc định (Default Constructor)  
2.Phương thức khởi tạo có tham số truyền vào  
(Constructor With Paramater)  
3.Phương thức khởi tạo sao chép (Copy Constructor)  
Constructor - Destructor - Getter - Setter  
6
- Là phương thức khởi tạo không có tham số đầu vào.  
- Mặc định trình biên dịch sẽ phát sinh sẵn phương thức khởi  
tạo mặc định nếu như bản thân lớp đó không có bất kỳ  
phương thức khởi tạo nào khác. (Lưu ý số 1)  
Constructor - Destructor - Getter - Setter  
7
File: HocSinh.h  
File: HocSinh.cpp  
Constructor - Destructor - Getter - Setter  
8
Là phương thức khởi tạo nhận tham số đầu vào  
“tùy ý” do người dùng định nghĩa, sẽ lấy đó làm  
dữ liệu tạo cho đối tượng.  
Constructor - Destructor - Getter - Setter  
9
File: HocSinh.h  
File: HocSinh.cpp  
Constructor - Destructor - Getter - Setter  
10  
Là phương thức khởi tạo nhận tham số đầu vào là 1 đối tượng cùng  
thuộc lớp đó, nó truyền dữ liệu qua cho đối tượng đang xét để tạo lập  
nên đối tượng đó.  
Bản chất là C++ đã cung cấp sẵn cho ta phương thức khởi tạo sao chép  
và ta có thể sử dụng bình thường không cần phải tạo ra lại 1 phương  
thức khác, nhưng tùy trường hợp mà ta phải chủ động tạo ra phương  
thức khởi tạo sao chép chứ không thể sử dụng của hệ thống có sẵn  
Constructor - Destructor - Getter - Setter  
(Lưu ý số 2)  
11  
File: HocSinh.h  
File: HocSinh.cpp  
Constructor - Destructor - Getter - Setter  
12  
- Giúp dọn dẹp chương trình sau khi đối tượng đã  
thực thi xong.  
- Công việc chủ yếu là thu hồi tất cả các tài  
nguyên đã cấp phát cho đối tượng trong giai  
đoạn lúc đối tượng còn đang thực thi.  
- Lưu ý số 3  
Constructor - Destructor - Getter - Setter  
13  
1.Tên phương thức trùng với tên lớp và có dấu ~ đặt ở ngay  
phía trước.  
2.Không có tham số đầu vào và cũng không có giá trị trả về.  
3.Chỉ có duy nhất 1 phương thức phá hủy ở 1 lớp.  
4.Ngầm định tự động chạy sau khi đối tượng hết phạm vi sử  
dụng.  
=> Phương thức phá hủy chỉ chạy duy nhất 1 lần trong  
quá trình sống của 1 đối tượng.  
Constructor - Destructor - Getter - Setter  
14  
File: HocSinh.h  
File: HocSinh.cpp  
Constructor - Destructor - Getter - Setter  
15  
Khi ta khởi tạo 1 đối tượng thì phương thức thiết lập mặc  
định của đối tượng đó tự động được gọi lên do trình biên  
dịch hỗ trợ (mặc dù ta không cần khai báo), nhưng nếu  
trong bài ta có sử dụng đến các phương thức thiết lập khác  
như phương thức thiết lập nhận tham số đầu vào, phương  
thức thiết lập sao chép thì bắt buộc ta phải khai báo ra  
phương thức thiết lập mặc định vì lúc này trình biên dịch sẽ  
không hỗ trợ nữa, nếu không ta sẽ bị lỗi chương trình, cụ thể  
Constructor - Destructor - Getter - Setter  
là: "no appropriate default constructor available".  
16  
Nếu kiểu dữ liệu của các thành phần dữ liệu (thuộc tính) bên trong 1  
lớp đối tượng không phải là kiểu dữ liệu con trỏ thì ta không cần phải  
cài đặt phương thức tạo lập sao chép cho lớp (C++ đã cung cấp sẵn  
cho ta phương thức tạo lập sao chép mặc định), tuy nhiên nếu đề bài  
yêu cầu thì cứ khai báo cũng chả chết. Còn nếu 1 lớp đối tượng có  
thuộc tính là con trỏ thì bắt buộc ta phải khai báo phương thức thiết  
lập sao chép cho lớp đó chứ không thể dùng phương thức tạo lập sao  
chép mặc định do C++ cung cấp (vì nó chỉ sao chép địa chỉ của con  
trỏ chứ không thật sự sao chép vùng nhớ mà chúng quản lý - dẫn đến  
2 đối tượng cùng trỏ đến 1 địa chỉ vùng nhớ, nếu 1 trong 2 đối tượng  
Constructor - Destructor - Getter - Setter  
thay đổi thì cả 2 đều bị thay đổi theo => bị sai).  
17  
Phương thức phá hủy tự động được gọi khi đối tượng  
hết phạm vi sử dụng, mặc định đối với những đối  
tượng không có thuộc tính là con trỏ thì không cần  
cài đặt cho phương thức phá hủy (để rỗng), còn các  
đối tượng có dùng con trỏ thì phải giải phóng vùng  
nhớ bên trong phương thức phá hủy.  
Constructor - Destructor - Getter - Setter  
18  
Cho phép lấy dữ liệu hiện tại (thuộc tính)  
đang ở tầm vực private của đối tượng đem  
ra bên ngoài cho 1 số trường hợp cần  
thiết. Lưu ý là chỉ lấy ra để so sánh, xem  
chứ không thay đổi lại được.  
Constructor - Destructor - Getter - Setter  
19  
Cho phép từ bên ngoài lớp ta có thể truy  
xuất vào được thuộc tính nằm bên trong  
lớp đang bị giới hạn bởi tầm vực là private  
và sẽ thay đổi lại nó nếu ta muốn (Yên  
tâm là ta có sự kiểm soát rõ ràng).  
Constructor - Destructor - Getter - Setter  
20  
Xây dựng lớp điểm trong không gian 2  
chiều cho phép thực hiện các chức năng:  
– Nhập, xuất.  
– Hàm dựng: hàm dựng không tham số và  
hàm dựng 2 tham số.  
– Lấy tọa độ.  
– Gán giá trị tọa độ.  
– Tính khoảng cách với một điểm khác.  
Constructor - Destructor - Getter - Setter  
Tải về để xem bản đầy đủ
pdf 23 trang myanh 21920 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 3: Constructor, Destructor, Getter, Setter - Nguyễn Việt Nam Sơn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_chuong_3_constructor_des.pdf