Tải bản đầy đủ (.ppt) (20 trang)

Hướng đối tượng - Lớp và đối tượng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.96 MB, 20 trang )

LỚP VÀ ĐỐI TƯỢNG
I.
I.


Cài đặt lớp và tạo thực thể
Cài đặt lớp và tạo thực thể
Dùng từ khóa
Dùng từ khóa
class
class
.
.
class
class
class_name
class_name


{
{


permission_label_1
permission_label_1
:
:
member1
member1
;
;




permission_label_2
permission_label_2
:
:
member2
member2
;
;


... }
... }


object_name
object_name
;
;


Trong đó :
Trong đó :
class_name:
class_name:
Tên của lớp.
Tên của lớp.
object_name
object_name

là một hoặc nhiều danh biểu xác định
là một hoặc nhiều danh biểu xác định
đối tượng (object)
đối tượng (object)
(thực thể instance).
(thực thể instance).


members:
members:
dữ liệu hoặc phát biểu hàm
dữ liệu hoặc phát biểu hàm
permission labels:
permission labels:
(tùy chọn) có thể là các từ khóa
(tùy chọn) có thể là các từ khóa
:
:
private:
private:
,
,
public:
public:


hoặc
hoặc
protected:
protected:

. Nhằm xác định quyền truy cập các members liên quan
. Nhằm xác định quyền truy cập các members liên quan
Thiếu dấu ” ;”
này sẽ bị những
thông báo lỗi rất
khó hiểu!
LỚP VÀ ĐỐI TƯỢNG
Thuộc tính truy cập
Thuộc tính truy cập
private:
private:


members của class chỉ có thể
members của class chỉ có thể
truy xuất bởi các members khác thuộc
truy xuất bởi các members khác thuộc
cùng lớp hoặc từ các lớp "
cùng lớp hoặc từ các lớp "
friend
friend
".
".
protected:
protected:


members có thể truy xuất từ
members có thể truy xuất từ
các members khác thuộc cùng lớp hoặc

các members khác thuộc cùng lớp hoặc
từ các lớp "
từ các lớp "
friend
friend
“, và từ các members
“, và từ các members
của các lớp dẫn xuất.
của các lớp dẫn xuất.
public:
public:
members truy xuất được từ bất cứ
members truy xuất được từ bất cứ
nơi nào thấy được class.
nơi nào thấy được class.
LỚP VÀ ĐỐI TƯỢNG
Cài đặt lớp và tạo thực thể
Cài đặt lớp và tạo thực thể


Có sự khác biệt giữa khai báo theo kiểu
Có sự khác biệt giữa khai báo theo kiểu
lập trình hướng thủ tục và hướng đối
lập trình hướng thủ tục và hướng đối
tượng.
tượng.
Sử dụng toán tử phân giải phạm vi (scope
Sử dụng toán tử phân giải phạm vi (scope
resolution operator)
resolution operator)

: :
: :
Ví dụ
Ví dụ
1 về lập trình kiểu thủ tục
1 về lập trình kiểu thủ tục
Ví dụ
Ví dụ
2 về thiết kế Class và Object (1)
2 về thiết kế Class và Object (1)
Ví dụ
Ví dụ
3 về thiết kế Class và Object (2)
3 về thiết kế Class và Object (2)
Ví dụ
Ví dụ
4 về mảng các đối tượng (arrays of objects)
4 về mảng các đối tượng (arrays of objects)
LỚP VÀ ĐỐI TƯỢNG
II.Phương thức thiết lập và phương thức hủy bỏ
II.Phương thức thiết lập và phương thức hủy bỏ
(Constructors and Destructors)
(Constructors and Destructors)
Phương thức thiết lập
Phương thức thiết lập
là phương thức sẽ được gọi một
là phương thức sẽ được gọi một
cách tự động khi đối tượng được khởi tạo.
cách tự động khi đối tượng được khởi tạo.
Trong C++ không cho phép khởi tạo dữ liệu trong khi khai

Trong C++ không cho phép khởi tạo dữ liệu trong khi khai
báo class vì vậy xây dựng constructor là rất cần thiết.
báo class vì vậy xây dựng constructor là rất cần thiết.
Thực chất constructor là một method Init
Thực chất constructor là một method Init


Khai báo phương thức này bằng cú pháp:
Khai báo phương thức này bằng cú pháp:
Class class_name {
member;
…..
public:
member;
…..;
class_name(void); // constructor here !
} object_name;
Ví dụ
Ví dụ
5
5
Lưu ý: không định
nghĩa giá trị trả về
cho method này
LỚP VÀ ĐỐI TƯỢNG
Phương thức thiết lập
Phương thức thiết lập
(Constructors)
(Constructors)
Chuyển tham số cho constructor

Chuyển tham số cho constructor
Trong nhiều trường hợp ta cần khởi tạo
Trong nhiều trường hợp ta cần khởi tạo
đối tượng với các tính chất được xác định
đối tượng với các tính chất được xác định
đặc biệt, khi đó cần chuyển một hoặc
đặc biệt, khi đó cần chuyển một hoặc
nhiều tham số cho constructor.
nhiều tham số cho constructor.
Có thể truyền tham số cho constructor
Có thể truyền tham số cho constructor
ngay trong khai báo class.
ngay trong khai báo class.
Ví dụ
Ví dụ
5b
5b
Cũng có thể truyền tham số cho
Cũng có thể truyền tham số cho
constructor khi khai báo object.
constructor khi khai báo object.
Ví dụ
Ví dụ
5c
5c
LỚP VÀ ĐỐI TƯỢNG
Phương thức hủy bỏ
(Destructors)
Phương thức hủy bỏ
Phương thức hủy bỏ

là phương thức sẽ được
là phương thức sẽ được
gọi một cách tự động khi đối tượng bị hủy.
gọi một cách tự động khi đối tượng bị hủy.


Khai báo phương thức này bằng cú pháp:
Khai báo phương thức này bằng cú pháp:
Class class_name {
member;
…..
public:
member;
class_name(void); // Constructor here!
…..;
~class_name(void); // Destructor here !
} object_name;
Ví dụ
Ví dụ
6
6
Coi
chừng
ngã
LỚP VÀ ĐỐI TƯỢNG
Phân bổ bộ nhớ động
Phân bổ bộ nhớ động
Nhiều đối tượng cần được tạo ra trong thời gian
Nhiều đối tượng cần được tạo ra trong thời gian
chạy chương trình và cần bị hủy (giải phóng

chạy chương trình và cần bị hủy (giải phóng
khỏi bộ nhớ) khi đã hết nhiệm vụ.
khỏi bộ nhớ) khi đã hết nhiệm vụ.
Cú pháp
Cú pháp
cấp phát vùng nhớ
cấp phát vùng nhớ
:
:
(datatype)
(datatype)
pointer_var =
pointer_var =
new
new
datatype
datatype
Ví dụ:
int *p;
Student *sv_ptr; // Student là một class
p = new int;
sv_ptr = new Student; // Cấp phát động
Ví dụ 8
Tham khảo thêm về sử dụng bộ nhớ trong C++
LỚP VÀ ĐỐI TƯỢNG
Thu hồi bộ nhớ động
Thu hồi bộ nhớ động
Cú pháp
Cú pháp
thu hồi vùng nhớ

thu hồi vùng nhớ
:
:
delete
delete
pointer_var
pointer_var
Ví dụ:
int *ptr;
Student *sv_ptr; // Student là một class
ptr = new int; // cấp phát vùng nhớ
*p
*ptr = 1276;
cout << *ptr;
delete ptr; // Thu hồi vùng nhớ *p
sv_ptr = new Student;
…. // xử lí *sv_ptr ở đây
delete sv_ptr;

×