- •Е.Б. Юдин Объектно-ориентированное программирование на языке 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
Вопрос 3: Какая строка будет выдана на консоль после выполнения фрагмента кода
приведенного ниже.
1. public class Test {
2. public Test() {
3. }
4. public static void main(String[] args) {
5. int i,j;
6. lab: for(i = 0; i < 6; i++){
7. for (j = 3; j > 1; j--){
8. if(i == j){
9. System.out.println(" " + j);
10. break lab;
11. }
12. }
13. }
14. }
15. }
1. 2345
2. 234
3. 3
4. 2
Ответ: Правильный ответ 2
Условие if в данном примере будет выполнено, когда переменные i и j будут равны 2. После чего на консоль будет выведено 2 и выполнится оператор break. Т.к. break содержит ссылку на метку, то будет прерван не текущий цикл (внутренний, по переменной j), а цикл по переменной i (внешний), т.о. образом выполнение программы будет прекращено.
Вопрос 4: Дан код:
String str=new String("Java");
int i=1;
char j=3;
System.out.println(str.substring(i,j));
В результате при компиляции и запускке будет выведено:
1. Выведено: Ja
2. Выведено: av
3. Выведено: ava
4. Ошибка: не существует метода substring(int,char)
Ответ:2
Правильный ответ 2. См. Гослинга в предоставленной литературе 5.6 Числовое расширение. Если кратко, Числовые расширения используются для того, чтобы приводить операнды числовой операции к общему типу так, чтобы действие могло выполняться. В некоторых операциях, которые дают значения числового типа, одноместное числовое расширение применяется к отдельному операнду:
-
Если операнд имеет тип byte, short или char, одноместное числовое расширение расширяет его до значения типа int расширяющим преобразованием (§5.1.2).
-
Иначе, одноместный числовой операнд остается как есть и не преобразовывается.
Вопрос 5: Какой метод следует использовать, чтобы обнаружить позицию буквы v в строке str= "Java"?
1. mid(2,str);
2. str.charAt(2);
3. str.indexOf('v');
4. indexOf(str,'v');
Ответ: 3
Для решения этой или подобной задачи советую смотреть документацию по JAVA, представленной, например, по адресу http://java.sun.com/javase/6/docs/api/. Там описывается какие функции какие значения возвращают для все стандартных классов платформы JAVA SE.
Вопрос 6: Дан код:
String str="ava";
char ch='J';
ch+=str;
System.out.println(ch);
В результате при компиляции и запуска будет выведено:
1. Java
2. ava
3. avaJ
4. J
5. Ошибка во время компиляции
Ответ: 5. Не определена операция += для char String. И String не может привести к int и char к String.
Вопрос 7:
Что будет результатом компиляции и выполнения следующего кода?
StringBuffer s= new StringBuffer("You Java");
s.insert(2, "like ");
System.out.print(s);
1. Yolike u Java
2. You like Java
3. Ylike ou Java
4. You Java like
5. Ошибка компиляции: метод insert() не объявлен для класса String-Buffer
Ответ: 1. Советую посмотреть справку по JAVA для StringBuffer. Класс StringBuffer является близнецом класса String, но, в отличие от последнего, содержимое и размеры объектов класса StringBuffer можно изменять. Метод insert в нём определён, индексирование для Java стандартное, т.е. с нуля.