Triển khai giao diện

Một phần của tài liệu Bé gi¸o dôc vμ ®μo t¹o Trêng ®¹i häc s ph¹m kü thuËt hng yªn pot (Trang 94 - 97)

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 Bé gi¸o dôc vμ ®μo t¹o Trêng ®¹i häc s ph¹m kü thuËt hng yªn pot (Trang 94 - 97)