- •8.Исключения: понятие исключения; классы исключений; необходимость обработки исключений.
- •9.Исключения: операторы языка Java, используемые для обработки исключений.
- •10.Исключения: организация обработки исключений; определение собственных исключений.
- •11.Ввод/вывод в Java: основные понятия.
- •12.Ввод/вывод в Java: основные группы классов и интерфейсов пакета java.Io.
- •13.Классификация программ по типу исполнения (компилируемые, интерпретируемые, исполняемые на виртуальных машинах). Виртуальная машина Java. Jit-компиляция.
- •14.Хранение данных в памяти эвм.
- •15.Приведение типов (явное и автоматическое). Константы и переменные.
- •16. Оператор присваивания. Порядок действий (приоритет операторов).
- •17. Арифметические операторы. Операторы инкремента и декремента.
- •18. Операторы сравнения и логические операторы.
- •19. Операторы ветвления. Условный оператор. Минимизация количества проверок.
- •Условный оператор if
- •Условный оператор if-else
- •20. Операторы ветвления. Оператор множественного выбора. Его сравнение с условным оператором.
- •21. Встроенный класс String. Строковые операции.
- •22. Стандартные потоки ввода-вывода. Организация ввода и вывода данных. Класс Scanner.
- •23. Операторы организации циклов. Цикл типа «n раз».
- •24. Операторы организации циклов. Цикл типа «пока» (с пред- и постпроверкой условия).
- •25. Массивы. Способы объявления и инициализации массивов. Индексация и размер массива.
- •26. Массивы. Алгоритмы сортировки.
- •27. Массивы. Многомерные массивы.
- •28. Статические методы классов. Методы функционального и процедурного типа.
- •29. Сигнатура метода. Перегрузка методов.
- •30. Процедурное программирование. Объектно ориентированное программирование. Сравнение парадигм.
- •31.Иерархия классов Java. Коренной класс Object и его методы.
- •32. Исключительные ситуации. Обработка исключительных ситуаций.
- •33. Приложения с графическим интерфейсом с использованием gui-пакетов и апплеты.
- •Локальные классы (local classes)
- •Объявление локальных классов
- •Доступ к переменным в локальных классах
- •Анонимные классы (Anonymous Classes)
- •Объявление анонимных классов
- •Синтаксис анонимных классов
- •Interface имя {
- •39.Типы-перечисления. Поля и методы типов-перечислений. Аннотации. Объявление типа аннотации и его использование. Аннотации для компилятора.
- •Синтаксис
- •Документация
- •Аннотации, используемые компилятором
- •Классы-коллекции
- •Интерфейсы-коллекции
- •Интерфейс Collection
- •Интерфейс List
- •Интерфейс Set
- •Интерфейс Queue
- •Иерархия классов-коллекций
- •Класс Vector
- •Класс ArrayList
- •Класс Stack
- •Паттерн проектирования Iterator
- •Класс LinkedList
- •Классы-множества
Интерфейс Collection
Интерфейс Collection содержит набор общих методов, которые используются в большинстве коллекций. Рассмотрим основные из них.
add(Object item) — добавляет в коллекцию новый элемент. Метод возвращает true, если добавление прошло удачно и false — если нет*. Если элементы коллекции каким-то образом упорядочены, новый элемент добавляется в конец коллекции.
clear() — удаляет все элементы коллекции.
contains(Object obj) — возвращает true, если объект obj содержится в коллекции и false, если нет.
isEmpty() — проверяет, пуста ли коллекция.
remove(Object obj) — удаляет из коллекции элемент obj. Возвращает false, если такого элемента в коллекции не нашлось.
size() — возвращает количество элементов коллекции.
Интерфейс List
Интерфейс List описывает упорядоченный список. Элементы списка пронумерованы, начиная с нуля и к конкретному элементу можно обратиться по целочисленному индексу. Интерфейс List является наследником интерфейсаCollection, поэтому содержит все его методы и добавляет к ним несколько своих:
add(int index, Object item) — вставляет элемент item в позицию index, при этом список раздвигается (все элементы, начиная с позиции index, увеличивают свой индекс на 1);
get(int index) — возвращает объект, находящийся в позиции index;
indexOf(Object obj) — возвращает индекс первого появления элемента obj в списке;
lastIndexOf(Object obj) — возвращает индекс последнего появления элемента obj в списке;
add(int index, Object item) — заменяет элемент, находящийся в позиции index объектом item;
subList(int from, int to) — возвращает новый список, представляющий собой часть данного (начиная с позицииfrom до позиции to-1 включительно).
Интерфейс Set
Интерфейс Set описывает множество. Элементы множества не упорядочены, множество не может содержать двух одинаковых элементов. Интерфейс Set унаследован от интерфейса Collection, но никаких новых методов не добавляет. Изменяется только смысл метода add(Object item) — он не станет добавлять объект item, если он уже присутствует во множестве.
Интерфейс Queue
Интерфейс Queue описывает очередь. Элементы могут добавляться в очередь только с одного конца, а извлекаться с другого (аналогично очереди в магазине). Интерфейс Queue так же унаследован от интерфейса Collection. Специфические для очереди методы:
poll() — возвращает первый элемент и удаляет его из очереди.
peek() — возвращает первый элемент очереди, не удаляя его.
offer(Object obj) — добавляет в конец очереди новый элемент и возвращает true, если вставка удалась.
Иерархия классов-коллекций
Классы-коллекции, реализующие описанные выше интерфейсы, являются наследниками абстрактного классаAbstractCollection. Иерархия этих классов приведена на рисунке (синим цветом показаны интерфейсы). Мы рассмотрим те из них, которые представляют наибольший практический интерес.
Класс Vector
Vector (вектор) — набор упорядоченных элементов, к каждому из которых можно обратиться по индексу. По сути эта коллекция представляет собой обычный список.
Класс Vector реализует интерфейс List, основные методы которого названы выше. К этим методам добавляется еще несколько. Например, метод firstElement() позволяет обратиться к первому элементу вектора, метод lastElement()— к его последнему элементу. Метод removeElementAt(int pos) удаляет элемент в заданной позиции, а методremoveRange(int begin, int end) удаляет несколько подряд идущих элементов. Все эти операции можно было бы осуществить комбинацией базовых методов интерфейса List, так что функциональность принципиально не меняется.