Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
}
Курс
секция
14 Пакет java.util
public class Test { public Test() { }
public static void main(String[] args) { Test test = new Test();
TestObservable to = newTestObservable("Observable");
TestObserver o1 = newTestObserver("Observer 1");
TestObserver o2 = newTestObserver("Observer 2");
to.addObserver(o1);
to.addObserver(o2);
to.modify();
to.notifyObservers("Notify argument");
}
}
В результате работы на консоль будет выведено:
Called update of Observer 2 from Observable with argument Notify argument
Called update of Observer 1 from Observable with argument Notify argument
На практике использовать Observer не всегда удобно, так как в Java отсутствует множественное наследование и Observer необходимо наследовать в самом начале построения иерархии классов. Как вариант, можно предложить определить интерфейс, задающий функциональность, сходную с Observer, и реализовать его в подходящем классе.
Коллекции
Зачастую в программе работа идет не с одним объектом, а с целой группой более или менее однотипных экземпляров (например, автопарк организации). Проще всего сделать это с помощью массивов. Однако, несмотря на то, что это достаточно эффективное решение для многих случаев, оно имеет некоторые ограничения. Так, обращаться к элементу массива можно только по его номеру (индексу). Также необходимо заранее задать длину массива и больше ее не менять.
Массивы существовали в Java изначально. Кроме того, было опредс лено два класса для организации более эффективной работы с наборам11 объектов: Hashtable и Vector. В JDK 1.2 набор классов, поддерживаюши* работу с коллекциями, был существенно расширен.
Существует несколько различных типов классов-коллекций. Все 0ни разрабатывались, по возможности, в соответствии с единой логикой Л определенными интерфейсами и там, где это возможно, работа с ними унифицирована. Однако все коллекции отличаются внутренними механизмами хранения, скоростью доступа к элементам, потребляемой памятью и другими деталями. Например, в некоторых коллекциях объекты (также называемые элементами коллекций), могут быть упорядочены, в некоторых - нет. В некоторых типах коллекций допускается дублирование ссылок на объект, в некоторых — нет. Далее мы рассмотрим каждый из классов-коллекций