- •Е.Б. Юдин Объектно-ориентированное программирование на языке 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
Вопрос 19
Какие действия необходимо предпринять для установления TCP соединения между
двумя Java-приложениями?
Ответ: Во-первых, на стороне сервера надо создать экземпляр класса Server-
Socket с указанием порта, и затем вызвать у этого объекта метод accept().
При входе в этот метод поток исполнения приостанавливает свою работу
в ожидании подключения клиента.
Клиенту необходимо создать экземпляр класса Socket с указанием IP-
адреса и порта сервера. После успешного выполнения конструктора на
стороне сервера метод accept() вернет экземпляр класса Socket для
взаимодействия двух приложений.
Вопрос 20: Какие объекты могут быть клонированы?
Ответ: Если клонирование производится встроенным методом Object.clone(), то
такие классы необходимо специальным образом помечать, указывая, что
они реализуют интерфейс Cloneable. Кроме этого, класс может
переопределить метод clone() собственным образом, и обойтись без этого
интерфейса
Создание визуальных приложений
Вопрос 1
Дан код
import java.awt.*;
public class Quest2 extends Frame{
Quest2(){
Button yes = new Button("YES");
Button no = new Button("NO");
add(yes);
add(no);
setSize(100, 100);
setVisible(true);
}
public static void main(String[] args){
Quest2 q = new Quest();
} }
В результате при компиляции и запуска будет выведено:
a Две кнопки рядом, занимающие весь фрейм, YES слева и NO справа
b Одна кнопка YES, занимающая целый фрейм
c Одна кнопка NO, занимающая целый фрейм
d Две кнопки наверху фрейма, YES и NO
Ответ: с
Пояснение: по умолчанию у Frame менеджер компоновки BorderLayout а у BorderLayout если не указан второй аргумент, то элемент является BorderLayout.CENTER.
Вопрос 2
Какой менеджер компоновок размещает компоненты в таблице с ячейками равного размера?
a. FlowLayout
b. GridLayout
c. BorderLayout
d. CardLayout
Ответ: b
FlowLayout – менеджер поточной компоновки. CardLayout создает вкладки, содержимое которых отображается при выполнении щелчка на заголовке. BorderLayout позволяет позиционировать элементы в областях фиксированного размера, граничащих со сторонами фрейма, которые обозначаются параметрами: NORTH, SOUTH, EAST, WEST. Остальное пространство обозначается как CENTER. GridLayout разделяет фрейм на заданное количество рядов и колонок.
Вопрос 3
Какое выравнивание устанавливается по умолчанию для менеджера размещений FlowLayout?
а. Указывается явно
b. FlowLayout.RIGHT
c. FlowLayout.LEFT
d. FlowLayout.CENTER
e. FlowLayout.LEADING
Ответ: c
Вопрос 4
Cколько кнопок будет выведено в апплет:
import java.applet.*;
import java.awt.*;
public class Quest4 extends Applet{
Button b = new Button("Yes");
public void init(){
add(b);
add(b);
add(b);
add(new Button("No"));
add(new Button("No"));
add(new Button("No"));
}}
a. 1 кнопка с надписью ''Yes'' и 1 кнопка с надписью ''No''
b. 1 кнопка с надписью ''Yes'' и 3 кнопки с надписью ''No''
c. 3 кнопки с надписью ''Yes'' и 1 кнопка с надписью ''No''
d. 3 кнопки с надписью ''Yes'' и 3 кнопки с надписью ''No''
Ответ b
Пояснение: Команда add(b), вызванная во второй раз, пытается добавить на аплет уже существующий там объект. Команда add(new Button("No")) каждый раз добавляет новый объект