Khái niệm: Interface là ràng buộc, giao ước đảm
bảo cho các lớp hay các cấu trúc sẽ thực hiện một
điều gì đó.
Mục đích của một giao diện là để định nghĩa những
khả năng mà chúng ta muốn có trong một lớp.
Một interface thì giống như một lớp chỉ chứa các
phương thức trừu tượng.
Khi một lớp hay cấu trúc thực thi một interface, nó
phải thực thi tất cả các thành phần của interface
(thuộc tính, phương thức, sự kiện)
20 trang |
Chia sẻ: oanh_nt | Lượt xem: 1437 | Lượt tải: 0
Nội dung tài liệu Bài giảng lập trường hướng đối tượng: Giao diện (Interface), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
06/09/11 16:02 1
CHƯƠNG 5
2Mục tiêu chương 5
Tác dụng của giao diện, khi nào sử dụng giao diện.
Cách thức xây dựng và truy cập một giao diện.
Cách thức thực thi giao diện.
Sử dụng các toán tử is, as.
3Nội dung
Giao diện
Thực thi giao diện
45.1. Giao diện
Khái niệm: Interface là ràng buộc, giao ước đảm
bảo cho các lớp hay các cấu trúc sẽ thực hiện một
điều gì đó.
Mục đích của một giao diện là để định nghĩa những
khả năng mà chúng ta muốn có trong một lớp.
Một interface thì giống như một lớp chỉ chứa các
phương thức trừu tượng.
Khi một lớp hay cấu trúc thực thi một interface, nó
phải thực thi tất cả các thành phần của interface
(thuộc tính, phương thức, sự kiện)
5Định nghĩa một giao diện (1)
[thuộc tính] [phạm vi truy nhập] interface
[: danh sách cơ sở]
{
}
Phạm vi truy nhập: public, private, protected,
internal, protected internal
Tên của interface, nên bắt đầu bằng chữ “I”.
6Định nghĩa một giao diện (2)
Danh sách cơ sở: danh sách các interface mà nó
mở rộng (extend)
Phần thân interface: các phương thức, các thuộc
tính mà lớp thực thi cần cài đặt (Không xác định
phạm vi truy nhập – mặc định là public)
7Khai báo thành phần trong interface
Phương thức
Kieudulieu TenThuocTinh
{
[ get;]
[ set;]
}
kieuDuLieu[void] TenPhuongThuc(khai báo các tham số);
Thuộc tính
8Ví dụ
9Thực thi giao diện
Khi xây dựng một lớp ta có thể kế thừa từ một lớp
cơ sở và thực thi một hoặc nhiều interface.
Để thực thi interface
Khai báo lớp: các interface
Lớp kế thừa một lớp cơ sở và thực thi nhiều giao
diện thì lớp cơ sở đứng trước các giao diện, lớp cơ
sở và giao diện ngăn cách nhau bởi dấu phẩy (,).
10
Ví dụ
11
Mở rộng interface
Có thể mở rộng interface để thêm các thuộc tính và
phương thức mới
interface Inewinterface : Ioldinterface
{
void AddNewMethod();
}
12
Kết hợp các interfaces
Có thể kết hợp các interfaces lại với nhau và thêm
các phương thức, thuộc tính nếu cần
interface Inewinterface : Iinterface1, Iinterface2
{
void NewMethod();
}
13
Truy nhập các thành phần giao diện (1)
Có thể truy cập những thành viên của interface như
thể là các thành viên của lớp.
Tenlop biendoituong = new tenlop(các tham số);
biendoituong. phuongthuc();
14
Truy nhập các thành phần giao diện (2)
Không thể trực tiếp tạo thể hiện của interface, có thể
tạo thể hiện của giao diện bằng cách gán đối tượng
cho một kiểu dữ liệu interface, và sau đó sử dụng giao
diện này để truy cập các phương thức.
Truy xuất thành phần của Interface theo hai bước
(hoặc gộp cả hai bước)
• Tạo đối tượng của một lớp thực thi interface
• Ép kiểu đối tượng này thành thể hiện của interface
15
Truy nhập các thành phần giao diện (3)
Ví dụ: Ta có class Document và interface IStorable
(Show1)
Document doc = new Document("Test Document");
IStorable isDoc = doc;
isDoc.Show1();
16
Toán tử is và as (1)
Không biết rõ một lớp thực thi những interface nào
-> khi ép kiểu sang interface có thể phát sinh lỗi.
Muốn kiểm tra một đối tượng xem nó có hỗ trợ giao
diện, để sau đó thực hiện các phương thức tương
ứng. Trong ngôn ngữ C# có hai cách để thực hiện
điều này.
• Sử dụng toán tử is.
• Sử dụng toán tử as.
17
Toán tử is và as (2)
Toán tử is trả về giá trị true nếu biểu thức thường
là kiểu tham chiếu có thể được gán an toàn đến
kiểu dữ liệu cần kiểm tra mà không phát sinh ra bất
cứ ngoại lệ nào.
is
18
Toán tử is và as (3)
Toán tử as kết hợp toán tử is và phép gán bằng
cách đầu tiên kiểm tra hợp lệ phép gán (kiểm tra
toán tử is trả về true) rồi sau đó phép gán được
thực hiện. Nếu phép gán không hợp lệ (khi phép
gán trả ề giá trị false), thì toán tử as trả về giá trị
null.
as
19
Một lớp khi thực thi các phương thức của interface
có thể chuyển đổi phương thức đó thành dạng
phương thức ảo.
Các lớp dẫn xuất từ lớp đó override phương thức ảo
-> KỸ THUẬT ĐA HÌNH
20
Bài tập chương 5
Các file đính kèm theo tài liệu này:
- lap_trinh_huong_doi_tuong_voi_net_c_chuong5.pdf