Mục lục chương I: ĐỐi tưỢng và LỚP


TÓM TẮT LÍ THUYẾT Khái niệm về giao diện



tải về 1.36 Mb.
trang27/28
Chuyển đổi dữ liệu21.12.2018
Kích1.36 Mb.
1   ...   20   21   22   23   24   25   26   27   28

TÓM TẮT LÍ THUYẾT

    1. Khái niệm về giao diện


Giao diện là tập các hàm khai báo sẵn mà không cài đặt. Các lớp thực thi giao diện có nhiệm vụ cài đặt các hàm này.

Mục đích của việc cài đặt giao diện: Cho phép một lớp dẫn xuất có thể kế thừa thực thi nhiều giao diện. Điều này đã khắc phục được hạn chế của lớp trừu tượng là một lớp dẫn xuất chỉ có thể thực thi một lớp trừu tượng.


    1. Cài đặt một giao diện


Cú pháp để định nghĩa một giao diện như sau:

[thuộc tính] [bổ sung truy cập] interface [: danh sách cơ sở]

{
}

Ví dụ: Xây dựng một giao diện có tên là Hinh và giao diện này có hai phương thức đọc và ghi đối tượng.

interface Hinh

{

void read();



void write();

}

Mở rộng giao diện:

Chúng ta mở rộng một giao diện đã có bằng cách thêm các phương thức, các thành viên hay bổ sung cách làm việc cho các thành viên.

Thực thi nhiều giao diện:

Trong ngôn ngữ C# cho phép chúng ta thực thi nhiều hơn một giao diện.

Ví dụ: Lớp Document có thể thực thi cả hai giao diện Istorable và Icompressible. Ta xây dựng như sau: public class Document:Istorable, Icompressible

    1. Truy xuất phương thức của giao diện


Chúng ta có thể truy cập những thành viên của giao diện như thể các thành viên của lớp.

Ví dụ: Lớp Hình vuông thực thi giao diện có tên là Hinh ở ví dụ trên. Như vậy lớp Hình vuông có thể truy cập 2 thành viên read() và write() của giao diện Hinh.

Hinhvuong H=new Hinhvuong();

H.read();

H.write();

    1. Toán tử is:


Dùng để kiểm tra một đối tượng xem nó có hỗ trợ giao diện hay không.

Cú pháp của toán tử is: is


    1. Toán tử as


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 rồi sau đó phép gán được thực hiện. Nếu không hợp lệ thì toán tử as trả về giá trị Null.Sử dụng toán tử as để loại bỏ việc xử lí các ngoại lệ.

Cú pháp của toán tử as: as


    1. Thực thi phủ quyết giao diện


Khi thực thi một lớp chúng ta có thể tự do đánh dấu bất kì hay tất cả các phương thức thực thi giao diện như một phương thức ảo.

Ví dụ: Phủ quyết phương thức read() của giao diện Hinh

Public virtual void Read()

    1. Thực hiện giao diện một cách tường minh


Một lớp có thể cài đặt nhiều giao diện nên có thể xẩy ra trường hợp đụng độ về tên khi hai giao diện có cùng một tên hàm. Để giải quyết xung đột này ta khai báo cài đặt một cách tường minh hơn. Khi đó ta phải thêm tên giao diện vào trước tên phương thức.

Lựa chọn các phương thức phơi bày của giao diện

Người thiết kế có thêm thuận lợi khi một giao diện được thi công trong suốt quá trình ấy sự thi công tường minh không được thể hiện ở phía Client.Giả sử như đối tượng Document thi công giao diện Istorable nhưng chúng ta không muốn các phương thức Read() và Write() của giao diện istorable được xem như là Public trong lớp Document. Chúng ta có thể sử dụng phần thực hiện tường minh để chắc rằng chúng không sẵn có trong suốt quá trình phân bố.



Thành viên ẩn

Ngôn ngữ C# có một khả năng mới là, các thành viên của giao diện có thể được ẩn đi.


  1. BÀI TẬP MẪU

    1. Sử dụng giao diện


Các bạn có thể tham khảo chương trình sau để hiểu rõ về giao diện và cách sử dụng nó.

using System;

// khai báo giao diện interface IStorable

interface IStorable

{

void Read();



void Write(object obj);

int Status

{

get;



set;

}

}



// thực thi phương thức Write public void Write( object o)

public void Write( object o)

{

Console.WriteLine("Impleting the Write Method for IStorable");



}

// tạo một lớp thực thi giao diện IStorable public class Document : IStorable

public class Document : IStorable

{

public Document( string s)

{

Console.WriteLine("Creating document with: {0}", s);



}

// thực thi phương thức Read()

public void Read()

{

Console.WriteLine("Implement the Read Method for IStorable");



}

// thực thi phương thức Write public void Write( object o)



public void Write( object o)

{

Console.WriteLine("Impleting the Write Method for IStorable");



}

// thực thi thuộc tính public int Status



public int Status

{

get

{

return status;

}

set

{

status = value;



}

}

private int status = 0;

}

public class Tester

{

static void Main()

{

// truy cập phương thức trong đối tượng Document

Document doc = new Document("Test Document");

doc.Status = -1;

doc.Read();

Console.WriteLine("Document Status: {0}", doc.Status);

// gán cho một giao diện và sử dụng giao diện

IStorable isDoc = (IStorable)doc;

isDoc.Status = 0;

isDoc.Read();

Console.WriteLine("IStorable Status: {0}", isDoc.Status);

Console.ReadKey();

}

}



Kết quả sau khi chạy chương trình:




Creating document with: Test Document

Implement the Read Method for Istorable

Document Status : -1

Implement the Read Method for Istorable

Istorable Status : -1






    1. Поделитесь с Вашими друзьями:
1   ...   20   21   22   23   24   25   26   27   28


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©tieuluan.info 2019
được sử dụng cho việc quản lý

    Quê hương