- •Е.Б. Юдин Объектно-ориентированное программирование на языке java
- •Введение
- •Лабораторные работы Лабораторная работа №1 – Разработка консольного приложения
- •Класс StringTokenizer. .Лексический анализ текста
- •Регулярные выражения
- •Задания к лабораторной работе №1
- •Лабораторная работа №2 Разработка визуального приложения.
- •Задания к лабораторной работе №2
- •Лабораторная работа № 3 Построение объектно-ориентированного приложения
- •Шаблоны проектирования
- •Библиотека Jung
- •Средства визуализации
- •Значимости
- •Задания к лабораторной работе №3
- •Вопросы по синтаксису языка и объектно-ориентированному программированию
- •Синтаксис и семантика языка
- •Вопрос 1: Каков будет результат выполнения программы
- •Вопрос 2: Приведенная ниже программа должна вывести на консоль Hello World! Выберите строки, которые нужно модифицировать в вашей программе, что бы получить правильный результат.
- •Вопрос 3: Какая строка будет выдана на консоль после выполнения фрагмента кода
- •Вопрос 4: Дан код:
- •Вопрос 6: Дан код:
- •Вопрос 7:
- •Вопрос 8: Дан код:
- •Вопрос 9: Дан код:
- •Вопрос 10: Дан код:
- •Вопрос 11: Какие из следующих утверждений истинные?
- •Вопрос 12: Дан код:
- •Вопрос 13: Какие из объявлений корректны, если:
- •Вопрос 14: Что будет выведено в результате компиляции и выполнения следующего кода:
- •Вопрос 15: Корректен ли следующий код? Если нет, то какие исправления можно предложить?
- •Вопрос 16: Корректно ли следующее обращение к переменной X?
- •Вопрос 17: Можно ли при переопределении некоторого абстрактного метода perform()
- •Вопрос 18
- •Вопрос 19
- •Вопрос 20: Какие объекты могут быть клонированы?
- •Создание визуальных приложений
- •Вопрос 1
- •Вопрос 2
- •Вопрос 3
- •Вопрос 4
- •Вопрос 5
- •Вопрос 6
- •Вопрос 6
- •Вопрос 7
- •Вопрос 8
- •Вопрос 9
- •Вопрос 10
- •Вопрос 11
- •Вопрос 12
Задания к лабораторной работе №2
-
Создать классы Point и Line. Объявить массив из n объектов класса Point. Для объекта класса Line определить, какие из объектов Point лежат на одной стороне от прямой и какие на другой. Реализовать ввод данных для объекта Line и случайное задание данных для объекта Point.
-
Создать классы Point и Line. Объявить массив из n объектов класса Point и определить в методе, какая из точек находится дальше всех от прямой.
-
Создать класс Triangle и класс Point. Объявить массив из n объектов класса Point, написать функцию, определяющую, какая из точек лежит внутри, а какая снаружи треугольника.
-
Определить класс Rectangle и класс Point. Объявить массив из n объектов класса Point. Написать функцию, определяющую, какая из точек лежит снаружи, а какая внутри прямоугольника.
-
Реализовать полиморфизм на основе абстрактного класса AnyFigure и метода show(). Вывести точку, треугольник, тетраэдр.
-
Определить класс Line для прямых линий проходящих через точки A(x1, y1) и B(x2, y2). Создать массив объектов класса Line. Определить какие из прямых линий пересекаются, а какие совпадают, используя функции. Нарисовать все пересекающиеся прямые.
-
Определить классы Triangle и NAngle. Определить, какой из m введённых n-угольников имеет наибольшую площадь.
-
Задать движение по экрану строк (одна за другой) из массива строк. Направление движения по апплету и значение каждой строки выбирается случайным образом.
-
Задать составление строки из символов появляющихся из разных углов апплета и выстраивающихся друг за другом. Процесс должен циклически повторяться.
-
Задать движение окружности по апплету так, чтобы при касании границы окружность отражалась от нее с эффектом упругого сжатия.
-
Изобразить в апплете приближающийся издали шар, удаляющийся шар. Шар должен двигаться с постоянной скоростью.
-
Изобразить в окне приложения (апплета) отрезок, вращающийся в плоскости экрана вокруг одной из своих концевых точек. Цвет прямой должен изменяться при переходе от одного положения к другому.
-
Изобразить в окне приложения (апплета) отрезок, вращающийся в плоскости фрейма вокруг точки, движущейся по отрезку.
-
Изобразить четырехугольник, вращающийся в плоскости апплета вокруг своего центра тяжести.
-
Изобразить прямоугольник, вращающийся в плоскости фрейма, вокруг одной из своих вершин.
-
Изобразить разносторонний треугольник, вращающийся в плоскости апплета вокруг своего центра тяжести.
-
Создать фрейм с областью для рисования «пером». Создать меню для выбора цвета и толщины линии.
-
Создать апплет с областью для рисования «пером». Создать меню для выбора цвета и толщины линии.
-
Создать фрейм с областью для рисования. Добавить кнопки для выбора цвета (каждому цвету соответствует своя кнопка), кнопку для очистки окна. Рисование на панели со скроллингом.
-
Создать апплет с областью для рисования. Добавить кнопки для выбора цвета (каждому цвету соответствует своя кнопка), кнопку для очистки окна. Рисование на панели со скроллингом.
-
Создать простой текстовый редактор, содержащий меню и использующий классы диалогов для открытия и сохранения файлов.
-
Создать апплет, содержащий (JLabel) с текстом «Простой апплет», кнопку и текстовое поле (JTextField), в которое при каждом нажатии на кнопку выводится по одной строке из текстового файла.
-
Изменить апплет для предыдущей задачи таким образом, чтобы он мог работать и как апплет, и как приложение.
-
Составить программу для управления скоростью движения точки по апплету. Одна кнопка увеличивает скорость, другая – уменьшает. Каждый щелчок изменяет скорость на определенную величину.
-
Изобразить в окне гармонические колебания точки вдоль некоторого горизонтального отрезка. Если длина отрезка равна q, то расстояние от точки до левого конца в момент времени t можно считать равным q(1+cos(wt))/2, где w - некоторая константа. Предусмотреть поля для ввода указанных величин и кнопку для остановки и пуска процесса.
-
Для предыдущей задачи предусмотреть возможность управления частотой колебаний с помощью двух кнопок. С помощью других двух кнопок (можно клавиш) управлять амплитудой, т. е. величиной q.
-
Построить в апплете ломаную линию по заданным вершинам. Координаты вершин – вводятся через текстовое поле и фиксируются нажатием кнопки.
-
Нарисовать в апплете окружность с координатами центра и радиусом, вводимыми через текстовые поля.
-
Cоздать апплет со строкой движущейся горизонтально, отражаясь от границ апплета и меняя при этом свой цвет, на цвет выбранный из выпадающего списка.
-
Cоздать апплет со строкой движущейся по диагонали. При достижении границ апплета все символы строки случайным образом меняют регистр. При этом шрифт меняется на шрифт, выбранный из списка.
-
Создать апплет. Поместить на него текстовое поле (JTextField), кнопку (JButton) и метку (JLabel). В метке отображать действия, которые выполняются в текстовом поле (например, «Введен текст…») или с кнопкой («Нажата кнопка»).
-
Создать апплет. Поместить на него две панели (JPanel) и кнопку. Первая панель содержит поле ввода (использовать JTextField) и метку (JLabel - «Поле ввода»); вторая – поле вывода и метку («Поле вывода»). Для размещения в окне двух панелей и кнопки (JButton - «Скопировать») использовать BorderLayout.NORTH, BorderLayout.CENTER и BorderLayout.SOUTH, соответственно.
-
Изменить задачу 2 так, чтобы при нажатии на кнопку «Скопировать» текст из поля ввода переносится в поле вывода, а поле ввода очищается.
-
Задача 2 модифицируется так, что при копировании поля ввода нужно кроме собственно копирования организовать занесение строки из поля ввода во внутренний список. При решении использовать коллекцию, в частности, ArrayList.
-
К условию задачи 2 добавляется еще одна кнопка с надписью «Печать». При нажатии на данную кнопку весь сохраненный список должен быть выведен в консоль. При решении использовать коллекцию, в частности, TreeSet.
-
Написать программу для построения таблицы значений функции. Использовать метку (JLabel), содержащую заголовок (текст) «Функция: …»; панель, включающую три текстовых поля (JTextField), содержащих значения параметра, шага (например, 0.1) и количества точек. Начальное значение x=0. С каждым текстовым полем связана метка, содержащая его название. В нижней части окна должно находиться текстовое поле со скроллингом, содержащее полученную таблицу.
-
Создать форму с несколькими кнопками так, чтобы надпись на первой кнопке при ее нажатии передавалась на следующую, и т.д.
-
Создать форму с выпадающим списком так, чтобы при выборе элемента списка на экране появлялись GIF-изображения, двигающиеся в случайно выбранном направлении по апплету.
-
Создать апплет с двигающимся по нему прямоугольником (окружностью, эллипсом, линией). Направление движения объекта по экрану изменяется на противоположное щелчком по клавише мыши. При этом каждый второй щелчок меняет цвет фона.
-
Создать фрейм с изображением окружности. Длина дуги окружности изменяется нажатием клавиш от 1 до 9.
-
Создать фрейм с кнопками. Кнопки «вверх», «вниз», «вправо», «влево» двигают в соответствующем направлении линию. При достижении границ апплета линия появляется с противоположной стороны.
-
Создать фрейм и разместить на нем окружность (одну или несколько). Объект должен «убегать» от указателя мыши. При приближении на некоторое расстояние объект появляется в другом месте фрейма.
-
Создать фрейм с изображением графического объекта. Объект на экране движется к указателю мыши, когда последний находится в границах апплета.
-
Промоделировать вращение спутника вокруг планеты по эллиптической орбите. Когда скрывается за планетой – спутник не виден.
-
Промоделировать аналоговые часы (со стрелками) с кнопками для увеличения/уменьшения времени на час/минуту.