Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Лекция 2. Основы объектно-ориентированного программирования

33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

Лекция 3. Лексика языка

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

Лекция 4. Типы данных

69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

Лекция 5. Имена. Пакеты

90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

Лекция 6. Объявление классов

109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128

Лекция 7. Преобразование типов

129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144

Лекция 8. Объектная модель в Java

145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160

Лекция 9. Массивы

161 162 163 164 165 166 167 168 169 170 171 172 173 174

Лекция 10. Операторы и структура кода. Исключения

175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195

Лекция 11. Пакет java.awt

196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224

Лекция 12. Потоки выполнения. Синхронизация

225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241

Лекция 13. Пакет java.lang

242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260

Лекция 14. Пакет java.util

261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286

Лекция 15. Пакет java.io

287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314

Лекция 16. Введение в сетевые протоколы

315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344

исключения, должны либо сами их обрабатывать, либо в заголовке метода должно быть указано ключевое слово throws с перечислением необрабатываемых про­веряемых исключений. На непроверяемые ошибки это правило не распро­страняется.

Переопределенный (overridden) метод не может расширять список возможных исключений исходного метода.

Вариант 1

I _   Приведенная ниже программа должна вывести на консоль Hello World! Выберите строки, которые нужно модифицировать в вашей программе, чтобы получить правильный результат.

1   public class Test {

2 public Test() {

3 }

4 public static void main (String [] args) {

5 Test test = new Test();

6 String [] arr = {"Н","е","Г,"Г,"о"," ","w","o","r",'T',"d","!"};

7 String result = "";

8 int i= 0;

9 for(;;;){

10             result+= arr[i++];

11 }

12 System, out. println(result);

13       }

14    }

□ заменить строку 9 на for(i = 0; i < arr.length;){

□ заменить строку 9 на for(int int i = 0; i < arr.length;){

□ заменить строку 9 на for(i = 0; i < arr.length;i++){

□ заменить строку 9 на for(i = 1; i <= arr.length;i++){

Какая строка будет выдана на консоль после выполнения фрагмента кода, приведенного ниже? public class Test { public Test() (

}

public static void main(String[] args) { inti.j;

lab: for(i = 0; i < 6; i++){ for(j = 3;j>1;j«){ if(i ==j){ System.out.printlnf' " + j); break lab;

}

}

□ □ □ □

}

2345 234 3 2

1 2 3 4 5 6 7 8 9 10 11 12 13

3-

Предположим, нам необходимо создать собственную иерархию исключений. Рассмотрим следующий пример.

Exception

I

+--LengthException

I

+--TooLongException

I

+--TooShort Exception

class BaseMeasurer{ public BaseMeasurer(){

}

int measureLength(Dimension d) throws LengthException{

}

}

class DerivedMeasurer extends BaseMeasurer{ public BaseMeasurer(){

}

XXX {

}

}

Какое из перечисленных ниже выражений можно использовать в строке 11с тем, чтобы код успешно откомпилировался?

□   int measureLength(Dimension d) throws LengthException П   int measureLength(Dimension d) throws Exception П   int measureLength(Dimension d) throws TooLongException П   int measureLength(Dimension d)

курс

Программирование на.Ь,

Вариант 2

1.   Каков будет результат выполнения программы:

1   public class Test {

2 public Test() {

3 } 4

5      public static void main(String[] args) {

6 Test test = new Test();

7 int i = 5;

8 while(i = 5){

9             System.out.println(i++); Ю     }

11       }

12    }

П   компилятор выдаст сообщение об ошибке в строке 8

Г")   на консоль будут последовательно выведены значения 01234

[~1   на консоль будут последовательно выведены значения 43210

Г~1   программа откомпилируется, но на консоль ничего выведено не будет

секция Ю                                                         Операторы и структура кода. Исключения

2   выберите все правильные варианты ответов в этом примере:

public class Test {

float fVal = 0. Of;

public Test() {

}

public static void main(String[] args) {

Test t = new Test();

String testVal = "0.123";

System.out.println("Was returned " + t.testParse(testVal) + " with value " + t.tVal);

}

private boolean testParse(String val){ try {

fVal = Float. parseFloat(val); return true;

}

catch (NumberFormatException ex) {

System.out.println("Test.testParse() Bad number -> "

+ val);

fVal = Float. NaN; } finally{

System.out.println( "Finally part executed");

}

return false;

}

}

□   testVal="0.123"; Finally part executed Was returned true with value 0.123

П   testVal = "0,123"; Finally part executed Was returned false with value 0.123

П   testVal = null; Finally part executed

Далее будет вызвано исключение NullPointer

П   testVal = "0.123"; Finally part executed Was returned false with value null

3.   Предположим, нам необходимо создать собственную иерархию исключений. Рассмотрим следующий пример. Exception

I

+--LengthException

I

+--TooLongException

I

+- - TooShortException

1   class TooShortException extends Exception!

2          public TooShortException(String description){

3                super(description);

4          }

5   } 6

7   class Measurer {

8          public Measurer(){

9                super(); 10     }

11

12          int measureLength(Dimension d) throws LengthException {

13               XXX

14         }

15   }

В строке 13 необходимо вызвать исключение.

Какой из предложенных вариантов будет правильным?

□      new TooShortExceptionC'Shhhhort");

П    throws new TooShortExceptionC'Shhhhort");

П    throw new TooShortExceptionC'Shhhhort");

П    throw TooShortExceptionC'Shhhhort").

Вариант 3

В данном случае выберите все правильные ответы, private void say(int digit) { switch(x){ case 1: System.out.print("ONE");

break;

case 2: System.out.printf TWO'); case 3: System.out.print("TREE"); default:System.out.pritn("Unknown value")

}

}

□ digit = 1 ONE

□ digit = 0 TWO TREE

□ digit = 2 TWO Unknown value

□ digit = 3 TREE Unknown value

2.   Рассмотрим пример.

Эти исключения имеют следующую иерархию наследования: StringlndexOutOfBoundsException и ArraylndexOutOfBoundsException

java.lang.Object

I

+--java.lang.Throwable

I

+- -java. lang. Exception

I

+--java.lang.RuntimeException

I

+- -java. lang. IndexOutOf BoundsException

I

+--java.lang.StringlndexOutOf BoundsException

+--java.lang.ArraylndexOutOfBoundsException

Предположим, что в методе testSomeValue могут быть возбуждены оба вида исключений, при этом они не обрабатываются в блоке try - catch.

Какое из перечисленных ниже утверждений будет верным?

Г~1   определение метода testSomeValue должно включать throws StringlndexOutOf BoundsException, ArraylndexOutOfBoundsException

П   если метод, вызывающий testSomeValue, перехватывает IndexOutOfBoundsException, то исключения StringlndexOutOf BoundsException,

ArraylndexOutOfBoundsException тоже будут перехватываться

П   так как в определении метода указано throws StringlndexOutOf BoundsException,

ArraylndexOutOfBoundsException, любой вызывающий его метод должен перехватывать эти типы исключений, вне зависимости от того, возбуждается во время работы исключение или нет

П   при объявлении метода testSomeValue не обязательно указывать возбуждаемые исключения

3.   Каков будет результат работы следующего кода: 1 public class Test { 2

3 public Test() {

4 }

5 public static void main(String[] args) {

6 Test t = new Test();

7 XXX

8 }

9 private int check(String x,int n){

10 if( n ==0 )return n;

11 elseif(n== 1){

12            if (x != null) return 5;

13 }

14 else if (n==2&&x!=null){

15 if (x.equals("YES"» return 3;

16 else if ( x.equals("NO")) return 4;

17 }

18 return-1;

19       }

20    }

Если в строке 7 поместить код вызова метода check, то какое из предложений будет верным?

П   t.check("ANY",1) в этом случае обязательно будет выполнена строка 14

Г~| t.check("NO",2) в этом случае функция вернет значение 4 П t.checkfYES", 1) в этом случае функция вернет значение 3 Г~!   else в строке 14 относится к if в строке 11