Tải bản đầy đủ (.pdf) (42 trang)

Tài liệu tham khảo về lập trình hướng đối tượng với .NET & C#.Chương 3 Lớp và đối tượng ppt

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 (153.39 KB, 42 trang )

1
CHƯƠNG 3
2
Mục tiêu
 Khai báo được lớp, đối tượng và sử dụng.
 Biết cách vận dụng các từ khoá truy cập.
 Xây dựng các phương thiết lập, sao chép.
 Hàm hủy bỏ,cơ chế thu gom rác
 Sử dụng các thành viên tĩnh.
 Nạp chồng phương thức.
3
Nội dung
 Định nghĩa lớp
 Khai báo đối tượng và sử dụng
 Phương thức thiết lập, sao chép
 Phương thức hủy
 Nạp chồng phương thức
 Thành phần tĩnh
 Nạp chồng toán tử
4
3.1. Định nghĩa lớp
[phạm vi truy nhập:]: Là khả năng truy nhập thành
phần dữ liệu (public, private, internal, protected,
internal protected).
[thuộc tính]: có thể là static
[phạm vi truy nhập][Thuộc tính] class <tên
lớp>
{
// Khai báo các thuộc tính của lớp
// Khai báo các phương thức của lớp
}


5
Phạm vi truy nhập
Có thể được truy xuất bởi bất cứ phương thức của
bất kỳ lớp nào khác
public
Chỉ có thể truy xuất bởi các phương thức của
chính lớp đó
private
Có thể được truy xuất bởi các phương thức của
chính lớp đó và các lớp dẫn xuất (derived) từ nó
protected
Có thể được truy xuất bởi các phương thức của
lớp đó, lớp dẫn xuất từ lớp đó và các lớp trong
cùng Assembly với nó
internal
protected
Có thể được truy xuất bởi các phương thức của
các lớp trong cùng Assembly
internal
6
Ví dụ định nghĩa lớp
7
Lớp lồng nhau
public class Class1
{
// khai báo thuộc tính class1
// khai báo các phương thức class1
public class Class2
{
// khai báo thuộc tính class2

// khai báo các phương thức class2
}
}
8
3.2. Khai báo đối tượng và sử dụng
 Đối tượng là biến kiểu tham chiếu, không phải tham
trị.
• Biến đối tượng không chứa giá trị của đối tượng
• Biến chứa địa chỉ của đối tượng được tạo trong
bộ nhớ Heap
<tên lớp> <tên đối tượng> = new <tên lớp> ([các
giá trị khởi tạo nếu có])
 Sử dụng từ khóa “new”
9
Ví dụ
10
Truy nhập phương thức
<tên đối tượng>. <tên phương thức> ([danh
sách các đối số nếu có])
11
3.3. Phương thức thiết lập, sao chép
 Khởi tạo một đối tượng -> gọi phương thức thiết lập
(constructor)
• Phương thức thiết lập mặc định: sẽ được CLR cung
cấp nếu người lập trình không định nghĩa
• Phương thức thiết lập do người lập trình định nghĩa
 Phương thức thiết lập có chức năng:
• Tạo một đối tượng của lớp và chuyển nó sang trạng
thái xác định (valid state)
• Phương thức thiết lập thường được dùng để khởi gán

các thuộc tính của đối tượng
12
Phương thức thiết lập mặc định
 Phương thức thiết lập mặc định tạo đối tượng của lớp,
ngoài ra không làm gì khác
 Các thuộc tính được khởi gán các giá trị mặc định
nullreference
‘\0’ (null)char
falsebool
0Numeric (int, long,…)
Giá trị mặc địnhKiểu dữ liệu
13
Xây dựng phương thức thiết lập
 Phương thức thiết lập có tên trùng với tên đối
tượng, không có kiểu dữ liệu trả về và phạm vi truy
nhập thường là public.
 Có thể có nhiều phương thức thiết lập trong cùng
lớp.
 Phương thức thiết lập có thể có tham số hoặc
không
public Class_name()
public Class_name( argument list )
14
Ví dụ
15
Phương thức thiết lập sao chép
 Phương thức thiết lập sao chép khởi gán giá trị cho
đối tượng mới bằng cách sao chép dữ liệu của đối
tượng đã tồn tại (cùng kiểu).
 Xây dựng phương thức thiết lập sao chép

• Dùng interface ICloneable của .NET
• Tự xây dựng phương thức thiết lập sao chép
(hand-copying copy constructor)
16
Dùng interface ICloneable của .NET
 Class hỗ trợ hàm tạo sao chép phải
implement interface ICloneable
public Object Clone()
{
return MemberwiseClone(); // shallow copy
}
17
Ví dụ
18
Tạo phương thức thiết lập sao chép (1)
 Tên hàm trùng với tên lớp
• Khai báo
public <tên lớp> (< tên lớp > <đối tượng1>)
{
gt1 = <đối tượng1>.gt1;
gt2 = <đối tượng1>. gt2;
}
• Sử dụng
<Tên_lớp> <đối tượng2> = new
<Tên_lớp> (đối tượng1);
19
Ví dụ
20
Tạo phương thức thiết lập sao chép (2)
 Tên hàm trùng với tên lớp

• Khai báo
public void saochep (<tên lớp> <đối tượng1>)
{
this.gt1 = <đối tượng1>.gt1;
this.gt2 = <đối tượng1>).gt2;
}
• Sử dụng
<đối tượng2>.saochep (đối tượng1);
21
Ví dụ
22
Từ khóa This (1)
 Từ khóa this trỏ đến thể hiện hiện tại (current
instance) của đối tượng
 Từ khóa this rất hữu ích trong một số trường hợp
• Chỉ rõ thành phần (thuộc tính) của đối tượng,
tránh nhầm lẫn với tên biến, tránh sự nhập
nhằng về tên
public void SomeMethod (int hour)
{
this.hour = hour;
}
23
Từ khóa This (2)
• Dùng làm tham số truyền vào cho một phương
thức của đối tượng khác, cho phép phương thức
đó có thể tác động đến các thành phần của đối
tượng hiện tại.
class myClass
{

public void Foo(OtherClass otherObject)
{
otherObject.Bar(this);
}
}
24
Từ khóa This (3)
• Sử dụng cùng với indexer (Tìm hiểu thêm)
• Gọi một hàm tạo từ hàm tạo khác của lớp
class myClass
{
public myClass(int i) { // }
public myClass( ) : this(42) { // }
}
25
Từ khóa This (4)
• Gọi tường minh các phương thức, thuộc tính của
lớp
public void MyMethod(int y)
{

this.Draw( );
}

×