
- •Е.Б. Юдин Объектно-ориентированное программирование на языке 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
Вопрос 8: Дан код:
public class Quest6 {
public static void main(String[] args){
int a[] = new int[]{1,2,3,};
System.out.print(a[1]);
} }
Что будет выведено при попытке компиляции и запуска программы?
1. Ошибка компиляции: не определен размер массива
2. Ошибка времени выполнения
3. Выведено: 1
4. Выведено: 2
5. Ошибка компиляции: неправильная инициализация
Ответ: 4
Если ошибка синтаксиса должно было бы быть 1, если во времени выполнение непозволительные аргументы или с неопределённой ссылкой -2, в данном случае ошибок нет.
Вопрос 9: Дан код:
public class Quest8{
static int j=2;
public static void result(int i){
i *= 10;
j += 2;
}
public static void main(String[] args){
char i = ’1’;
result(i);
System.out.println(i+" "+j);
} }
Что будет выведено при попытке компиляции и запуска программы?
1. 1 2
2. 10 2
3. Ошибка: параметр метода result() не сочетается с передаваемой переменной
4. 10 4
5. 1 4
Ответ: 5. Третий ответ неверен, т.к. char приводится к int (в этом его особенность и уникальность). 1(char) переводится к 1, ну а j прибавляется в функции ещё 2(2+2), а то что она static не должно смущать, потому как она как любая другая статическая переменная будет одна для всех классов, но изменять её значение можно.
Вопрос 10: Дан код:
public class Quest {
{System.out.print("1");}
static{System.out.print("2");}
Quest(){System.out.print("3");}
public static void main(String[] args) {
System.out.print("4");
} }
В результате при компиляции и запуске будет выведено:
1. 34
2. 24
3. 14
4. 4
5. 1234
6. 234
Ответ: 2. При запуске приложения выполняются только статические логические блоки класса приложения и тело метода main().
Вопрос 11: Какие из следующих утверждений истинные?
1. Частные методы не могут быть перегружены
2. Переопределенный метод не может включать исключения не обрабатываемые в базовом классе
3. Методы, объявленные как final, не могут быть переопределены
4. Статические методы не могут быть переопределены
Ответ: 3.
Вопрос: Дан код:
class Base {}
class A extends Base {}
public class Quest{
public static void main(String[] args){
Base b = new Base();
A ob = (A) b;
} }
В результате при компиляции и запуске будет выведено:
1. Ошибка во время выполнения
2. Ничего: компиляция и выполнение без ошибок
3. Ошибка во время компиляции
Ответ: 3. Во время выполнения при попытке преоббразования с сужением типа будет сгенерировано исключение ClassCastException
Вопрос 12: Дан код:
abstract class QuestBase {
abstract void show();
static int i;
}
public class Quest2 extends QuestBase {
public static void main(String[] args){
boolean[] a = new boolean[3];
for(i = 0; i < a.length; i++)
System.out.print(“ ” + a[i]);
} }
В результате при компиляции и запуске будет выведено:
1. Ошибка времени компиляции: Quest2 должен быть объявлен как abstract
2. Ошибка времени выполнения: IndexOutOfBounds
3. true true true
4. false false false
5. Ошибка: массив a использован прежде, чем проинициализирован
Ответ: 1
Код не будет откомпилирован, так как подкласс наследует абстрактный класс и при этом не реализует его абстрактный метод м сам не объявлен как абстрактный