Язык программирования Java Дмитриев Андрей Владиславович andrei-dmitriev@yandex.ru Май 2007.

Презентация:



Advertisements
Похожие презентации
Программная инженерия Андрей Дмитриев ©
Advertisements

Язык программирования Java Дмитриев Андрей Владиславович 2007.
Язык программирования Java Дмитриев Андрей Владиславович Май 2007.
Язык программирования Java Дмитриев Андрей Владиславович Май 2007.
Язык программирования Java Дмитриев Андрей Владиславович 2007.
Контейнеры Сортировка Метод sort() Интерфейс Comparable метод int compareTo(Object o) вызов: Arrays.sort(a) Интерфейс Comparator метод int compare(Object.
Программная инженерия Дмитриев Андрей Владиславович
Программная иженерия Андрей Дмитриев ©
Язык программирования Java Дмитриев Андрей Владиславович Май 2007.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Изучение динамического определения типов. Класс Class. Динамическая загрузка и инстанцирование классов. В Java вся информация о классе хранится в специальном.
Язык программирования Java Дмитриев Андрей Владиславович 2007.
Ассоциативные списки Поиск данных происходит не по индексу или положению объекта, а по его ассоциативной связи: public interface Map { // Доступ к объектам.
Абстрактные типы данных 1. Абстрактная дата Date dt1, dt2; dt1 = new Date(1, Date.MARCH, 2006); dt2 = (Date)dt1.clone(); dt2.add(300); //
Программная иженерия Андрей Дмитриев ©
Test 6 Вопрос 1. Как можно уничтожить объект в Java? a)присвоить null всем ссылкам на объект b)вызвать Runtime.getRuntime().gc() c)вызвать метод finalize()
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Лекция 4 Оператор if-else Оператор if – else имеет вид if(условие) {…..} else {…..} Данный оператор полностью аналогичен условному оператору в С++. Оператор.
ООП Классы Данные отдельно, методы отдельно struct Node { Node* next; void* data; }; struct List { Node* first; int size; }; void* allocate() { … } void.
САОД, кафедра ОСУ1 Реализация списков:динамические структуры ListList classclass структура одного элемента type LIST = celltype; celltype = record.
Транксрипт:

Язык программирования Java Дмитриев Андрей Владиславович Май 2007

Итератор (Iterator) Дает возможность последовательно обойти все элементы составного объекта, не раскрывая его внутреннего представления. Может выглядеть так: public interface Iterator { public Object first() ; public Object next(); public boolean hasNext(); public Object currentItem(); }

Готовый пример public interface Enumeration { public boolean hasMoreElements(); public Object nextElement(); } … Enumeration e = vector.elements(); while (e.hasMoreElements()) { System.out.println(e.nextElement()); }

Итератор (пример) public class CarData { private Vector cars; … public Enumeration elements() { return cars.elements(); }

Итератор (фильтрация) public boolean hasMoreElements() { found = false; while (internalIter.hasMoreElements() && !found) { car = (Car)internalIter.nextElement(); } return car; }

Итератор (фильтрация) (cont.) public Object nextElement(){ if (car != null) { return car; } else { throw new NoSuchElementException(); }

Итератор (фильтрация) (cont.) public class CarData { private Vector cars; … public Enumeration filteredElements(int year) { return new CarData(year); }

Итератор (Выводы) Позволяет организовывать доступ к данным класса не обозначая их структуру. Требуется предотвращать попытки изменения данных во время их чтения.