Язык Java и разработка Java-приложений, Романов В.Ю.
Вопросы к экзамену 2024 года
-
Классы языка Java и их синтаксис. Члены класса. Статические члены класса. Поля и методы класса. Главный метод приложения. Конструкторы класса. Цепочки конструкторов. Блоки инициализации. Статические поля и методы классов. Инициализация статических полей класса.
-
Пакеты классов и интерфейсов. Импорт классов и интерфейсов из других пакетов. Разновидности видимости классов и интерфейсов. Соглашения об именовании пакетов, классов, директорий и файлов при программировании на Java.
-
Наследование полей и методов классов в языке Java. Перекрытие наследуемых методов. Использование конструкторов наследуемых классов. Разновидности видимости членов классов. Полиморфизм. Абстрактные классы. Конечные (final) классы.
-
Вложенность классов. Статические вложенные и внутренние классы. Доступ к статическим вложенным классам. Внутренние классы. Доступ к внутренним классам. Внутренние локальные классы. Внутренние анонимные классы.
-
Типы-перечисления. Поля и методы типов-перечислений.
-
Стандартная библиотека коллекций языка Java. Интерфейсы, реализации и алгоритмы коллекций. Структура библиотеки коллекций. Коллекции, множества и списки. Использование реализаций интерфейсов коллекций. Карты (maps) в библиотеке коллекций. Использование различных реализаций карт. Итераторы карт и коллекций. Стандартные алгоритмы библиотеки для работы с коллекциями и массивами.
-
Методы рефакторинга для преобразования структуры программы на языке Java. Рефакторинг типов. Рефакторинг иерархии наследования. Перемещение методов по иерархии наследования и между классами. Использование среды Eclipse для рефакторинга программы на языке Java.
-
Родовые типы в языке Java. Назначение родовых типов. Не ковариантность родовых типов. Родовой тип wildcard. Родовые методы. Ограниченные родовые типы.
-
Потоки байтового вывода языка Java. Назначение и возможности классов OutputStream, ByteArrayOutputStream, FileOutputStream, PipedOutputStream, FilterOutputStream, BufferedOutputStream, DataOutputStream, PrintStream. Потоки символьного вывода языка Java.
-
Потоки ввода языка Java. Назначение и возможности классов InputStream, ByteArrayInputStream, FileInputStream, PipedInputStream, FilterInputStream, BufferedInputStream, DataInputStream. Потоки символьного ввода языка Java. Чтение данных из потока с помощью класса Scanner.
-
Интернационализация программ в языке Java. Файлы текстовых ресурсов. Выбор языка пользователя для выдачи текстовых сообщений.
-
Лямбда выражения в языке Java8. Замена анонимных классов лямбда выражениями. Функциональные интерфейсы. Синтаксис Lambda-выражений. Примеры функциональных интерфейсов из пакета java.util.function.
-
Потоки в языке Java8. Определение потоков. Отличие операций потоков от операций коллекций. Обработка данных потока в конвейере. Методы для порождения потоков. Методы для преобразования потоков в конвейере. Преобразования в конце конвейера.
-
Модули в Java 9. Назначение модулей. Синтаксис описания модулей. Зависимость от модулей. Экспорт пакетов модуля. Открытость модуля.
-
Возможности версий Java9-Java17.
-
Назначение библиотеки Standard Widget Toolkit. Основные классы библиотеки. Класс Display. Класс Shell. Класс Composite. Класс Control. Цикл событий (event loop).
-
Пакеты библиотеки Standard Widget Toolkit. Класс SWT. Иерархия управляющих элементов. Конструкторы и стили управляющих элементов.
-
Класс Widget библиотеки Standard Widget Toolkit. Освобождение ресурсов графики и управляющих элементов. Класс Control. Конструктор, стили, события, характерные методы класса Control.
-
Класс Shell. Конструктор, стили, события, характерные методы класса Shell. Класс Composite. Конструктор, стили, события, характерные методы класса Composite. Класс Canvas. Конструктор, стили, события, характерные методы класса Canvas.
-
Структурирование интерфейса пользователя с помощью классов TabFolder и TabItem. Конструктор, стили, события, характерные методы классов TabFolder и TabItem.
-
Рисование графических элементов с помощью класса Graphics Context (GC) библиотеки Standard Widget Toolkit. Рисование линий, фигур, изображений графических файлов, курсоров. Задание их атрибутов представления на экране.
-
Обработка событий в библиотеке Standard Widget Toolkit. Интерфейс обработчика события PaintListener для перерисовки изображений на экране.
-
Интерфейс обработчика клавиатуры мыши MouseListener, вращения колеса MouseWheelListener, перемещения мыши MouseMoveListener.
-
Списки библиотеки SWT в интерфейсе пользователя. Инициализация списков. Слушатели событий. Определение выбранного элемента списка.
-
Кнопки библиотеки SWT в интерфейсе пользователя. Радио-кнопки. Инициализация кнопок. Слушатели событий. Определение выбора пользователя.