- •Понятие потока данных в java. Виды потоков:
- •Общая схема записи данных в поток:
- •Общая схема чтения данных из потока:
- •Байтовый поток :свойства, связь потока с файлом, чтение, запись закрытие:
- •Потоки символов: свойства, связь потока с файлом, чтение, запись, закрытие:
- •Потоки строк: свойства, связь потока с файлом, чтение, запись, закрытие:
- •Исключения при работе с потоками:
- •Понятие рекурсии, рекурсивное вычисление максимального элемента массива:
- •Понятие рекурсии, рекурсивное вычисление факториала:
- •Понятие рекурсии, рекурсивное вычисление суммы элементов массива:
- •Формулировка задачи о ханойских башнях:
- •Применение рекурсии при определении связного списка:
- •Понятие списка. Объявление элемента списка:
- •Структура объявления двусвязного списка:
- •Типовые операции для односвязных списков:
- •Кольцевой и двусвязный списки: отличия от односвязного списка:
- •Порядок добавления элемента в односвязный список:
- •Основные типы коллекций, имеющиеся в Java Collection Framework:
- •Составные части jcf и их назначение:
- •Назначение интерфейсов и алгоритмов jcf:
- •Примеры (двух) интерфейсов и (двух) реализаций: сходства и различия:
- •Преимущества, получаемые от применения jcf в программах:
- •Коллекции: списки – основные методы интерфейса List:
- •Коллекции: множества – основные элементы интерфейса Set:
- •Выполнение стандартных операций теории множеств:
- •Списки и множества: сходства и различия:
- •Цикл for-each и его применение в коллекциях:
- •Математическая идея, представленная элементом Map:
- •Вопрос 29. Сравнительный анализ реализаций ArrayList и LinkedList.
- •Вопрос 30. Параметры по которым сравнивают реализации коллекций.
- •Вопрос 31. Понятие и назначение итератора
- •Вопрос 33. Comparable и Comparator
- •Вопрос 34. Сортировка со стандартным и нестандартным отношением порядка.
- •Вопрос 35. Вопрос 36. Вопрос 37. Вопрос 38 Поиск элемента в коллекции. Двоичный и прямой поиск. Способ идентификации ситуации «Элемент не найден».
- •Вопрос 39. Графический интерфейс пользователя. Составные элементы фрейма.
- •Вопрос 40. Библиотеки Java, поддерживающие графический интерфейс.
- •Вопрос 41. Компонент и контейнер.
- •Вопрос 42. Jframe — в иерархии объектов графики.
- •Ответы к экзамену по программированию часть 5 (вопр. 57-69)
- •События мышки. Общая схема обработки событий мышки:
- •Методы интерфейса MouseListener и их назначение:
- •Методы интерфейса MouseMotionListener:
- •Методы класса MouseEvent. Получение координат события:
- •Управляющие элементы графического интерфейса – внешний вид и назначение:
- •Кнопка. Состояния кнопки. События кнопки, их обработка и идентификация:
- •Структура программы, имеющей интерфейс с двумя кнопками:
- •Элементы интерфейса «Условие» («флажок») и его конструкторы:
- •События элемента «флажок» и их обработка.
- •Структура программы с интерфейсом, содержащим два элемента «условие»:
- •67. Элемент интерфейса «радиокнопка» и его конструкторы:
- •Группировка радиокнопок и задание начального состояния в группе.
- •События элемента «радиокнопка» и их обработка.
Вопрос 35. Вопрос 36. Вопрос 37. Вопрос 38 Поиск элемента в коллекции. Двоичный и прямой поиск. Способ идентификации ситуации «Элемент не найден».
Прямой поиск (Линейный):
Идея поиска: Разбить массив на на две части и отбросить ту, в которой искомого элемента нет.
Существует два варианта бинарного поиска : итерационный и рекурсивный.
Код рекурсивного поиска:
Код итерационного двоичного поиска:
Для поиска элемента в коллекции можно вопсользоваться методом binarySearch() имеет вид:
int binarySearch(коллекция, элемент)
и возращает индекс первого вхождение элемента в коллекцию. Если при поиске возращается значение “-1”, то элемент не найден.
Вопрос 39. Графический интерфейс пользователя. Составные элементы фрейма.
Графический интерфейспользователя (GUI) – средство и способ взаимодействия пользователя и программы при помощи мышки и клавы.
В Java есть 2 основных пакета для создания графических интерфейсов (Graphics User Interface). Это Abstract Windows Toolkit (AWT) и Swing.
Чтобы какой-либо компонент появился на экране его надо сделать видимым и поместить в контейнер.
В контейнер Java помещаются требуемые элементы графического интерфейса. Контейнер можно создать с помощью элементов JFrame , JApplet, JDialog и др.
Структура окна графического приложения :
Контейнер Frame — это полноценное готовое окно со строкой заголовка, в которую помещены кнопки контекстного меню, сворачивания окна в ярлык и разворачивания во весь экран и кнопка закрытия приложения.
Фрейм должен иметь строку заголовка, полосы прокрутки, кнопки — свернуть, разврнуть, закрыть. Нобязательные компоненты: строка меню с выпадающими пунктами. Окно должно быть окружено рамкой, в пределах которой происходит раегирование на действия мышью.
Вопрос 40. Библиотеки Java, поддерживающие графический интерфейс.
AWT и SWING
В ранних версиях Java средства Swing отсутсвовали. Можно счиатать, что они стали попыткой преодолеть трудности, связанные с первой оконной подсистемы –AWT.
Одним из ограничений AWT была платформеннo-ориентированная поддержка визуальных компонентов. Таким образом внешний вид интерфейсных элементов определялся не средствами Java, а используемой платформой. Элементы, создаваемые средством AWT, назывались тяжеловесными.
Платформенно-ориентированная поддержка интерфейсных элементов стала источником ряда проблем. Из-за различия в ОС комоненты по-разному выгядели и даже по-разному вели себя на различных платформах. К тому же использование тяжеловесных компонентов пораждало ряд проблем. Например такие компоненты всегда имели прямоугольную форму и были непрозрачны.
Потребовалось не слишком много времени, чтобы осознать, что ограничения AWT слишком серьёзны и нужен новый подход. Т.о. в 1997 появился набор компонентов Swing. Все компоненты Swing, за небольшим исключением являются легковесными, а это означает, что они полнстью написаны на Java и не зависят от конкретной платформы. Легковесный компонент может иметь форму, отличную от прямоугольной и быть прозрачным.
Общее количество компонентов библиотеки Swing почти вдвое превышает количество компонентов, входящих в библиотеку AWT, и эти компоненты обладают большими функциональными возможностями.
использование Swing - почти всегда предпочтительнее, за исключением тех случаев, когда нужна обратная совместимость с Java 1.
