Page 103 - 4836
P. 103
знову число. І обробити їх усі в циклі вона, напевно, не зможе,
оскільки у цих об'єктів немає загальних методів. У результаті
втрачаються всі переваги використання колекції. Тому в
кожну колекцію слід поміщати об'єкти тільки одного класу (і
похідні від нього).
Інтерфейси - колекції
Деякі колекції в пакеті java.util не представлені
самостійними класами. Наприклад, черга і список. Але для
цих корисних структур даних визначені відповідні
інтерфейси, тобто можна користуватися будь-яким класом, що
реалізує такий інтерфейс.
Інтерфейс може використовуватися в якості типу даних
так само, як і клас. Різниця лише в тому, що об'єкти
інтерфейсного типу не можна створити безпосередньо -
необхідно вибрати клас, що підтримує цей інтерфейс і
викликати його конструктор.
Нехай, наприклад, потрібен список, одна з найбільш
зручних і часто вживаних структур даних. Список - це
впорядкована послідовність елементів, кожен з яких можна
отримати за його позицією. Крім того, можна додавати
елементи в необхідні позиції списку і видаляти їх, при цьому
(і це головна зручність на відміну від масиву) інші елементи
автоматично «розсуваються» або «зсуваються» так, що
безперервна зв'язність списку зберігається.
Список представлений у пакеті java.util інтерфейсом
List. Ви можете створювати змінні цього типу і оголошувати
функції з таким параметром. Наприклад, клас Game в
програмі гри в шашки (див. завдання 16) має поле checkers
типу List, що зберігає всі чорні і білі шашки (об'єкти типу
Checker). Коли шашку з'їдають, її треба просто видалити зі
списку за допомогою одного із зручних методів, визначених у
інтерфейсі List:
101