Chương 3<br />
<br />
Interface & Class trong C#<br />
3.1 Tổng quát về phát biểu class của C#<br />
3.2 Định nghĩa thuộc tính vật lý<br />
3.3 Định nghĩa tác vụ chức năng<br />
3.4 Định nghĩa toán tử chức năng<br />
3.5 Định nghĩa thuộc tính giao tiếp (luận lý)<br />
3.6 Định nghĩa ₫ối tượng ₫ại diện hàm (delegate)<br />
3.7 Định nghĩa sự kiện (Event)<br />
3.8 Định nghĩa phần tử quản lý danh sách (indexer)<br />
3.9 Thành phần static và thành phần không static<br />
3.10 Lệnh ₫ịnh nghĩa 1 class C# ₫iển hình<br />
3.11 Kết chương<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Các mẫu thiết kế hướng đối tượng<br />
Chương 3 : Interface & Class trong C#<br />
Slide 1<br />
<br />
3.1 Tổng quát về phát biểu class của C#<br />
Ngôn ngữ C# (hay bất kỳ ngôn ngữ lập trình nào khác) cung cấp cho<br />
người lập trình nhiều phát biểu (statement) khác nhau, trong ₫ó phát<br />
biểu class ₫ể ₫ặc tả chi tiết hiện thực từng loại ₫ối tượng cấu thành<br />
phần mềm là phát biểu quan trọng nhất. Sau ₫ây là 1 template của 1<br />
class C# :<br />
class MyClass : BaseClass, I1, I2, I3 {<br />
//₫ịnh nghĩa các thuộc tính vật lý của ₫ối tượng<br />
//₫ịnh nghĩa các tác vụ chức năng, các toán tử<br />
//₫ịnh nghĩa các thuộc tính giao tiếp (luận lý)<br />
//₫ịnh nghĩa các ₫ại diện hàm chức năng (delegate)<br />
//₫ịnh nghĩa các sự kiện (event)<br />
//₫ịnh nghĩa indexer của class<br />
//₫ịnh nghĩa các tác vụ quản lý ₫ời sống ₫ối tượng<br />
}<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Các mẫu thiết kế hướng đối tượng<br />
Chương 3 : Interface & Class trong C#<br />
Slide 2<br />
<br />
3.1 Tổng quát về phát biểu class của C#<br />
<br />
<br />
<br />
<br />
Khi ₫ịnh nghĩa 1 class mới, ta có thể thừa kế tối ₫a 1 class ₫ã có<br />
(₫ơn thừa kế), tên class này nếu có, phải nằm ở vị trí ₫ầu tiên<br />
ngay sau dấu ngăn ":".<br />
Khi ₫ịnh nghĩa 1 class, ta có thể hiện thực nhiều interface khác<br />
nhau (₫a hiện thực), danh sách này nếu có, phải nằm sau tên<br />
class cha. Trong trường hợp nhiều interface có cùng 1 tác vụ<br />
(phân biệt bằng chữ ký) và nếu class muốn hiện thực chúng khác<br />
nhau thì ta dùng tên dạng phân cấp :<br />
class MyClass : BaseClass, I1, I2, I3 {<br />
//hiện thực các tác vụ cùng chữ ký trong các interface khác<br />
nhau<br />
void I1.func1() {}<br />
void I2.func1() {}<br />
void I3.func1() {}<br />
...<br />
Môn : Các mẫu thiết kế hướng đối tượng<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Chương 3 : Interface & Class trong C#<br />
ĐH Bách Khoa Tp.HCM<br />
}Trường<br />
Slide 3<br />
© 2010<br />
<br />
3.2 Định nghĩa thuộc tính vật lý<br />
<br />
<br />
<br />
<br />
Mỗi thuộc tính vật lý của ₫ối tượng là 1 biến dữ liệu cụ thể. Phát<br />
biểu ₫ịnh nghĩa 1 thuộc tính vật lý sẽ ₫ặc tả các thông tin sau về<br />
thuộc tính tương ứng :<br />
Tên nhận dạng.<br />
Kiểu dữ liệu.<br />
Giá trị ban ₫ầu.<br />
Tầm vực truy xuất<br />
Cú pháp ₫ơn giản ₫ể ₫ịnh nghĩa 1 thuộc tính vật lý như sau :<br />
[scope | attribute]* type name [= value];<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Các mẫu thiết kế hướng đối tượng<br />
Chương 3 : Interface & Class trong C#<br />
Slide 4<br />
<br />
3.2 Định nghĩa thuộc tính vật lý<br />
<br />
<br />
thành phần scope miêu tả tầm vực truy xuất của thuộc tính, có<br />
thể chọn 1 trong 5 khả năng sau :<br />
public : thuộc tính có thể ₫ược truy xuất bất kỳ ₫âu.<br />
internal : thuộc tính có thể ₫ược truy xuất bất kỳ ₫âu trong<br />
cùng assembly chứa class.<br />
protected : thuộc tính có thể ₫ược truy xuất bởi class hiện<br />
hành và các class con, cháu.<br />
protected internal : thuộc tính có thể ₫ược truy xuất bất kỳ ₫âu<br />
trong cùng assembly chứa class hay các class con, cháu.<br />
private : thuộc tính chỉ có thể ₫ược truy xuất nội bộ trong class<br />
hiện hành.<br />
nếu thành phần scope không ₫ược miêu tả tường minh, thuộc<br />
tính sẽ có tầm vực private.<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Các mẫu thiết kế hướng đối tượng<br />
Chương 3 : Interface & Class trong C#<br />
Slide 5<br />
<br />