Triển khai giao diện

Một phần của tài liệu Chương 2: lập trình hướng đối tượng (Trang 43 - 46)

VII. Từ khoá final

3. Triển khai giao diện

Bởi một giao diện chỉ gồm các mô tả chúng không có phần cài đặt, các giao diện được định nghĩa để cho các lớp dẫn xuất triển khai, do vậy các lớp dẫn xuất từ lớp này phải triển khai đầy đủ tất cả các khai báo bên trong giao diện, để triển khai một giao diện bạn bao gồm từ khoá implements vào phần khai báo lớp, lớp của bạn có thể triển khai một hoặc nhiều giao diện ( hình thức này tương tự như kế thừa bội của C++)

Ví dụ

.. .

public void valueChanged(String tickerSymbol, double newValue) { if (tickerSymbol.equals(sunTicker)) { .. . } else if (tickerSymbol.equals(oracleTicker)) { .. . } else if (tickerSymbol.equals(ciscoTicker)) { .. . } } } Chú ý:

1) Nếu một lớp triển khai nhiều giao diện thì các giao diện này được liệt kê cách nhau bởi dấu phẩy ‘,’

2) Lớp triển khai giao diện phải thực thi tất cả các phương thức được khai báo trong giao diện, nếu như lớp đó không triển khai, hoặc triển khai không hết thì nó phải được khai báo là abstract

3) Do giao diện cũng là một lớp trừu tượng do vậy ta không thể tạo thể hiện của giao diện

4) Một lớp có thể triển khai nhiều giao diện, do vậy ta có lợi dụng điều này để thực hiện hành vi kế thừa bội, vốn không được java hỗ trợ

5) Một giao diện có thể mở rộng một giao diện khác, bằng hình thức kế thừa

II. Lớp trong

Có thể đặt một định nghĩa lớp này vào bên trong một lớp khác. điều này được gọi là lớp trong. Lớp trong là một tính năng có giá trị vì nó cho phép bạn gộp nhóm các lớp về mặt logic thuộc về nhau và để kiểm soát tính thấy được của các

lớp này bên trong lớp khác. Tuy nhiên bạn phải hiểu rằng lớp trong không phải là là hợp thành

Ví dụ:

public class Stack { private Vector items;

.. .//code for Stack's methods and constructors not shown...

public Enumeration enumerator() { return new StackEnum();

}

class StackEnum implements Enumeration { int currentItem = items.size() - 1;

public boolean hasMoreElements() { return (currentItem >= 0);

}

public Object nextElement() { if (!hasMoreElements())

throw new NoSuchElementException(); else

return items.elementAt(currentItem--); }

} }

Lớp trong rất hữu hiệu khi bạn bạn muốn tạo ra các lớp điều hợp ( được bàn kỹ khi nói về thiết kế giao diện người dùng )

Bài 9 MẢNG, XÂU KÝ TỰ, TẬP HỢP

I. Mảng

Một phần của tài liệu Chương 2: lập trình hướng đối tượng (Trang 43 - 46)

Tải bản đầy đủ (PDF)

(89 trang)