игра брюс 2048
Главная / Программирование / Java: ООП и классы / Тест 1

Java: ООП и классы - тест 1

Упражнение 1:
Номер 1
Укажите, какие из перечисленных конструкций содержат в себе вызов метода некоторого класса?

Ответ:

 (1) s.square = 55; 

 (2) s.square(5, 12); 

 (3) System.out.println(s.square);  

 (4) int sq = s.square; 

 (5) ни в одном из вышеперечисленных 


Номер 2
Укажите, какие из перечисленных конструкций содержат в себе вызов метода некоторого класса?

Ответ:

 (1) s.square = 55; 

 (2) s.square(5, 12); 

 (3) System.out.println(s.square);  

 (4) sq = s.square(5,7); 

 (5) ни в одном из вышеперечисленных  


Номер 3
Укажите, какие из перечисленных конструкций содержат в себе вызов метода некоторого класса?

Ответ:

 (1) double l = 2 * Math.PI * r; 

 (2) double s = Math.PI * r * r; 

 (3) double r = Math.sqrt(s/Math.PI);  

 (4) double r = l / (2 * Math.PI); 

 (5) ни в одном из вышеперечисленных  


Номер 4
Какой из приведенных списков содержит наиболее полный  перечень спецификаторов, управляющих доступом к методам класса?

Ответ:

 (1) public, private, static 

 (2) public, static, protected, private и доступ по умолчанию 

 (3) public, private, protected 

 (4) public, static, final, protected 

 (5) public, private, protected и доступ по умолчанию 


Номер 5
Какая операция предусмотрена в Java для обращения к полям и методам класса?

Ответ:

 (1) -> 

 (2) . 

 (3) - 

 (4) >> 

 (5) никакая специальная 


Номер 6
Какие варианты ответа соотвествуют обращению к полям и методам некоторых классов?

Ответ:

 (1) a=c>>b; 

 (2) a.show(); 

 (3) System.out.println("Hello, world!");  

 (4) a.field = 15; 

 (5) никакие 


Упражнение 2:
Номер 1
К каким компонентам класса применима перегрузка в Java-программах?

Ответ:

 (1) к методам и переменным класса 

 (2) к методам и конструкторам класса 

 (3) к конструкторам и переменным класса 

 (4) только к методам класса 

 (5) только к конструкторам класса 

 (6) только к переменным 


Номер 2
Какие методы являются перегруженными в Java-программе?

Ответ:

 (1) методы, имеющие разные имена, но одинаковое число и типы параметров 

 (2) методы, имеющие одно имя, но разное число параметров одного типа 

 (3) методы, имеющие одно имя и одинаковое число параметров одного типа 

 (4) методы, имеющие разные имена, но с совпадающими именами параметров 

 (5) никакие из вышеперечисленных 


Номер 3
Какие методы являются перегруженными в смысле Java-программе?

Ответ:

 (1) методы, имеющие разные имена, но одинаковое число и типы параметров 

 (2) методы, имеющие одинаковые имена и разное число параметров одного типа 

 (3) методы, имеющие одно имя и не более одного параметра произвольного типа 

 (4) методы, имеющие одинаковые имена и разное число параметров произвольных типов 

 (5) никакие из вышеперечисленных 


Номер 4
Какие утверждения относительно методам класса верны?

Ответ:

 (1) класс может содержать перегруженные методы, но должен включать определение хотя бы одного конструктора; 

 (2) в классе могут содержаться перегруженные методы и перегруженные конструкторы; 

 (3) в классе, содержащем перегруженные конструкторы, не должно быть перегруженных методов 

 (4) класс может включать перегруженные методы и не содержать определения ни одного конструктора 

 (5) класс должен содержать определение хотя бы одного метода и конструктора 

 (6) если класс не содержит определение ни одного конструктора, то компилятор создаст конструктор по умолчанию 


Номер 5
Какие утверждения относительно компонентов класса верны?

Ответ:

 (1) класс может содержать перегруженные конструкторы; 

 (2) в классе могут содержаться перегруженные методы; 

 (3) в классе, содержащем перегруженные конструкторы, не должно быть перегруженных методов 

 (4) класс может включать перегруженные методы и не содержать описания ни одного конструктора 

 (5) в классе, содержащем перегруженные методы, не должно быть перегруженных конструкторов 


Номер 6
Какие утверждения относительно компонентов класса верны?

Ответ:

 (1) класс может не содержать ни одного конструктора, но на этапе компиляции будет создан конструктор по умолчанию 

 (2) класс может включать перегруженные конструкторы 

 (3) класс может не содержать ни одного метода 

 (4) класс должен включать хотя бы один метод 

 (5) ни одно утверждение не верно 


Упражнение 3:
Номер 1
Что будет выведено на экран в результате работы следующего фрагмента программы?

class Square {
		int s (int a, int b) { return a * b; }
		double s (double a, double b) { return a * b ; }
}
public class MyClass {
	public static void main (String args[]) {
		Square x = new Square();
		int a = 1;
		double b = 2;
		System.out.print(x.s(a, b+a) + x.s(a++, a));
	...


Ответ:

 (1) 31 

 (2) 32 

 (3) 3.02 

 (4) 5.0 

 (5) 3.0 + 1 


Номер 2
Что будет выведено на экран в результате работы следующей программы?

class Square {
	int s (int a, int b) { return a * b; }
	void s (double a, double b) { return a * b ; }
}
public class MyClass {
	public static void main (String args[]) {
		Square x = new Square();
		int a = 1;
		double b = 2;
		System.out.print(x.s(a, b+a) + x.s(a++, a));
	...


Ответ:

 (1) 31 

 (2) 32 

 (3) 3.02 

 (4) 5.0 

 (5) программа завершится ошибкой 


Номер 3
Что будет выведено на экран в результате работы следующей программы?

class Square {
	int s (int a, int b) { return a * b; }
	double s (double a, double b) { return a * b ; }
}
public class MyClass {
	public static void main (String args[]) {
		Square x = new Square();
		int a = 1;
		double b = 2;
		System.out.print(x.s(a, b+a));
	System.out.print(x.s(a++, a));
...


Ответ:

 (1) 31 

 (2) 32 

 (3) 3.02 

 (4) 5.0 

 (5) 3.0 + 1 


Номер 4
Что будет выведено на экран в результате работы следующей программы?

class Square {
		void s (int a, int b) {
			System.out.print (a * b);
			return a * b;
		}
		void s (int r) {
			System.out.print(3.14 * r * r);
		}
}
public class MyClass {
		public static void main (String args[]) {
			Square x = new Square();
			x.s(3, 12);
			x.s(1);
		}
}


Ответ:

 (1) 363.14 

 (2) 3 * 123.14 

 (3) 3 * 123 

 (4) компиляция программы завершится ошибкой 

 (5) 363 


Номер 5
Что будет выведено на экран в результате работы следующей программы?

class Square {
		int s (int a, int b) {
			System.out.print (a * b);
			return a * b;
		}
		void s (int r) {
			System.out.print(3.14 * r * r);
		}
}
public class MyClass {
		public static void main (String args[]) {
			Square x = new Square();
			x.s(3, 12);
			x.s(1);
		}
}


Ответ:

 (1) 363.14 

 (2) 3 * 123.14 

 (3) 3 * 123 

 (4) программа завершится ошибкой 

 (5) 363 


Номер 6
Что будет выведено на экран в результате работы следующей программы?

class Square {
		private int s (int a, int b) {
			System.out.print (a * b);
			return a * b;
		}
		void s (int r) {
			System.out.print(r);
		}
}
public class MyClass {
		public static void main (String args[]) {
			Square x = new Square();
			x.s(3, 0);
			x.s(1);
		}
}


Ответ:

 (1) 001 

 (2) 3*01 

 (3) 0 

 (4) программа завершится ошибкой 

 (5) 01 


Упражнение 4:
Номер 1
В классе Vector, описывающем отрезок на плоскости - две компоненты типа double: радиус - r и угол наклона - fi. Какие из перечисленных конструкторов недопустимы в описании класса Vector?

Ответ:

 (1) Vector() { r = 0; fi = 0; }  

 (2) public static Vector (short x, short y) { r = x; fi = y; }  

 (3) Vector (double x, double y) { r = x; fi = y; }  

 (4) Vector (int x) { r = x; fi = 0.0; }  

 (5) static constructor Vector () { r = 0; fi = 0; }  


Номер 2
Какие из указанных конструкторов могут быть добавлены в описание класса А?

class A {
	char ch;
	int digit;
}


Ответ:

 (1) A(int charCode){ ch = charCode; digit = charCode; }  

 (2) A (int charCode){ ch = digit = charCode; }  

 (3) A (char ch, short digit) { ch = digit; digit = ch; }  

 (4) A (char ch, int digit){ this.ch = ch; this.digit = digit; }  

 (5) A (char character) { this.digit = this.ch = character; }  


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

class A {
	char ch;
	int digit;
}


Ответ:

 (1) A(int charCode){ ch = charCode; digit = charCode; }  

 (2) A (int charCode){ digit = ch = (char)charCode; }  

 (3) A (char ch, short digit) { ch = digit; digit = ch; }  

 (4) A (char ch, int digit){ this.ch = ch; this.digit = digit; }  

 (5) A (char character) { this.ch = this.digit = character; }  


Номер 4
В классе Dot, описывающем точку на плоскости, два целочисленных компонента - координаты точки: a и b. Какие из перечисленных конструкторов можно использовать в описании класса Dot?

Ответ:

 (1) Dot() { a = 0; b = 0; }  

 (2) public static Dot (int x, int y) { a = x; b = y; }  

 (3) Dot (double x, double y) { a = x; b = y; }  

 (4) Dot (int x, int y) { a = x; b = y; }  

 (5) static constructor Dot () { a = 0; b = 0; }  


Номер 5
В классе Dot, описывающем точку на плоскости, два целочисленных компонента - координаты точки: a и b. Какие из перечисленных конструкторов можно использовать в описании класса Dot?

Ответ:

 (1) Dot() { a = 0; b = 0; }  

 (2) public static Dot (short x, short y) { a = x; b = y; }  

 (3) Dot (double x, double y) { a = x; b = y; }  

 (4) Dot (int x) { a = x; b = 0; }  

 (5) protected Dot () { a = 0; b = 0; }  


Номер 6
В классе Vector, описывающем отрезок на плоскости - две компоненты типа double: радиус - r и угол наклона - fi. Какие из перечисленных конструкторов можно использовать в описании класса Vector?

Ответ:

 (1) Vector() { r = 0; fi = 0; }  

 (2) public static Vector (short x, short y) { r = x; fi = y; }  

 (3) Vector (double x, double y) { r = x; fi = y; }  

 (4) Vector (int x) { r = x; fi = 0.0; }  

 (5) static constructor Vector () { r = 0; fi = 0; }  


Упражнение 5:
Номер 1
Укажите все варианты кода, которыми могут быть добавлены в пятую строку программы, чтобы вычисление площади круга производилось корректно?

1 class Square {
2	final double PI = 3.14;
3	double r;
4	double s (){
5		...
6	}
7  ...


Ответ:

 (1) return final.PI * r * r; 

 (2) return final.PI * this.r * this.r; 

 (3) return PI * this.r * this.r; 

 (4) return PI * r * r; 

 (5) фрагмент содержит синтаксические ошибки 


Номер 2
Укажите все варианты кода, которыми может быть дополнена пятая строка программы, чтобы приведенный фрагмент кода отрабатывал без ошибок?

1 class A {
2	int p;
3	int q;
4	A (int digit) {
5		...
6		q = 2 * p * digit;
7	}
8  ...


Ответ:

 (1) this.p = digit; 

 (2) digit = p; 

 (3) p = 0; 

 (4) this.p = 0; 

 (5) this.digit = 2 


Номер 3
Каким кодом может быть дополнена пятая строка программы, чтобы приведенный фрагмент кода отрабатывал без ошибок?

1 class A {
2	double a;
3	double b;
4	A (int digit) {
5		...
6		b = 2 * digit / a;
7	}
8  ...


Ответ:

 (1) this.a = digit > 0 ? digit : 1; 

 (2) this.a = 1; 

 (3) a = 1; 

 (4) this.a = 0; 

 (5) this.b = 0 


Номер 4
Укажите все варианты кода, которые  могут быть добавлены во вторую строку следующего фрагмента программы, чтобы вычисление площади круга с помощью метода S() было корректным?

1 class Square {
2	…
3	double r;
4	double s (){
5		return PI * this.r * this.r;
6	}
7 }


Ответ:

 (1) public final double PI = 3.14; 

 (2) double PI = 3.14; 

 (3) final double PI = 3.14; 

 (4) const double PI = 3.14; 

 (5) public const double PI = 3.14; 


Номер 5
Какой код может быть добавлен во вторую строку программы, для того, чтобы вычисление площади круга было корректным?

1 class Square {
2	…
3	double r;
4	double s (){
5		return PI * this.r * this.r;
6	}
7 }


Ответ:

 (1) public final double PI = 3.14; 

 (2) long PI = 3.14; 

 (3) final double PI = 3.14; 

 (4) const float PI = 3.14; 

 (5) public static long PI = 3.14; 


Номер 6
Укажите все варианты кода, которые  могут быть добавлены во вторую строку программы, для того, чтобы вычисление веса тела было корректным?

1 class Square {
2	…
3	double m;
4	double s (){
5		return g * this.m;
6	}
7 }


Ответ:

 (1) final double g = 9.8; 

 (2) long PI = 9.8; 

 (3) public final double g = 9.8; 

 (4) const float g = 9.8; 

 (5) public static final g = 9.8; 


Упражнение 6:
Номер 1
Какие из перечисленных методов класса A являются перегруженными?

Ответ:

 (1) void method (int a, double b, int c) 

 (2) int method () 

 (3) void method (int a, boolean b, int c) 

 (4) char method (char ch, double q) 

 (5) все вышеперечисленные 


Номер 2
Какой из перечисленных конструкторов класса A является перегруженным уже существующего конструктора в A?

class A {
	char ch;
	int digit;
	A () {
		ch = 'a';
		digit = 32;
}
}


Ответ:

 (1) все 

 (2) никакие 

 (3) A (char ch, short digit) { ch = digit; digit = ch; }  

 (4) A (char ch, int digit){ this.ch = ch; this.digit = digit; }  

 (5) A(int charCode){ digit = charCode; }  


Номер 3
Какие из перечисленных методов класса A являются перегруженными?

Ответ:

 (1) void method (int a, double b, int c) 

 (2) int method () 

 (3) char method1 (char ch, double q) 

 (4) void method (int a, int b, int c) 

 (5) char method (char ch, double q) 

 (6) ни один из вышеперечисленных 


Номер 4
Какие из перечисленных заголовков методов классов допустимы в Java-программах?

Ответ:

 (1) public void method (int a, float w) 

 (2) private Method (int a, float w) 

 (3) public void method () 

 (4) protected int method () 

 (5) protected final Method (int a, float w) 


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

Ответ:

 (1) void method (int a, int b, int c) 

 (2) int method () 

 (3) void method (double a, double b, double c) 

 (4) int method (char ch, double q) 

 (5) все вышеперечисленные 


Номер 6
Какие из перечисленных методов класса являются перегруженными?

Ответ:

 (1) void method (int a, double b, int c) 

 (2) unsigned int method () 

 (3) void method (unsigned int a, unsigned int b, unsigned int c) 

 (4) char method (char ch, double q) 

 (5) char method (int ch, double q) 


Упражнение 7:
Номер 1
Что будет выведено на экран операцией печати в седьмой строке следующего фрагмента программы, если известно, что при  создании объекта x использовался конструктор по умолчанию?

1 class A {
2	int x=0;
3	int y=0;
4	A() { x = 1; }
5 }
6 ...
7	System.out.print(x.x + " " + x.y);
8 ...


Ответ:

 (1) 0 0 

 (2) 1 0 

 (3) сообщение об ошибке 

 (4) 1 

 (5) ничего 


Номер 2
Что будет выведено на экран операцией печати в седьмой строке следующего фрагмента программы, если известно, что при  создании объекта x использовался конструктор по умолчанию?

1 class A {
2	int x;
3	int y=0;
4	A() { y = 1; }
5 }
6 ...
7	System.out.print(x.x + " " + x.y);
8 ...


Ответ:

 (1) 0 0 

 (2) 1 0 

 (3) сообщение об ошибке 

 (4) 0 1 

 (5) ничего 


Номер 3
Что будет выведено на экран операцией печати в седьмой строке следующего фрагмента программы, если известно, что при  создании объекта x использовался конструктор по умолчанию?

1 class A {
2	int x;
3	int y=0;
4	A(int a) { y = a; }
5 }
6 ...
7	System.out.print(x.x + " " + x.y);
8 ...


Ответ:

 (1) 0 

 (2) 0 0 

 (3) сообщение об ошибке 

 (4) 0 [значение a] 

 (5) ничего 


Номер 4
Укажите все варианты кода, с помощью которых  может  быть дополнено описание класса А, чтобы при создании объекта класса поля x и y получали нулевые значения?

1 class A {
2	int x;
3	int y;
4 }


Ответ:

 (1) { x = 0; y = 0;} 

 (2) дополнить описание компонент модификатором final 

 (3) A(){ int x = 0; int y = 0; }  

 (4) A(){ x = 0; y = 0; }  

 (5) ничего изменять не нужно 


Номер 5
Укажите все варианты кода, с помощью которых  может  быть дополнено описание класса А, чтобы при создании объекта класса поля x и y получали нулевые значения?

1 class A {
2	int x;
3	int y;
4 }


Ответ:

 (1) { x = 0; y = 0;} 

 (2) изменить строки 2 и 3 на int x =0; int y = 0;  

 (3) A(){ int x = 0; int y = 0; }  

 (4) A(){ x = 0; y = 0; }  

 (5) ничего изменять не нужно 


Номер 6
Укажите все варианты кода, с помощью которых  может  быть дополнено описание класса А, чтобы при создании объекта класса поля x получала нулевое, а y - единичное значение?

1 class A {
2	int x;
3	int y;
4 }


Ответ:

 (1) { x = 1; y = 1;} 

 (2) изменить строки 2 и 3 на int x = 0; int y = 1;  

 (3) A(){ x = 0; y = 1; }  

 (4) void A(){ x = 0; y = 1; }  

 (5) ничего изменять не нужно 


Упражнение 8:
Номер 1
В программе описан класс:

class A {
	int x;
	int y;	
}

Что будет выведено на экран в результате выполнения следующего фрагмента программы?

A x = new A();
System.out.print(x.x + " " + x.y);


Ответ:

 (1) nullnull 

 (2) 00 

 (3) 0 0 

 (4) 0 

 (5) программа завершится ошибкой 


Номер 2
В программе описан класс:

class A {
	int x=0;
	int y;	
}

Что будет выведено на экран в результате выполнения следующего фрагмента программы?

A x = new A();
System.out.print(x.x + x.y);


Ответ:

 (1) nullnull 

 (2) 00 

 (3) 0 0 

 (4) 0 

 (5) программа завершится ошибкой 


Номер 3
В программе описан класс:

class A {
	int x=0;
	int y=0;
}

Что будет выведено на экран в результате выполнения следующего фрагмента программы?

A x ;
x = new A();
System.out.print (x.y);
System.out.println (x.x);


Ответ:

 (1) nullnull 

 (2) 00 

 (3) 0 

 (4) на экран ничего не выведется 

 (5) программа завершится ошибкой 


Номер 4
В программе описан класс:

class A {
	int x=0;
	int y=0;	
}

Что будет выведено на экран в результате выполнения следующего фрагмента программы?

A x ;
System.out.print (x);
x = new A();
System.out.println (x.x);


Ответ:

 (1) null0 

 (2) 00 

 (3) 0 

 (4) на экран ничего не выведется 

 (5) программа завершится ошибкой 


Номер 5
В программе описан класс:

class A {
	int x=0;
	int y=0;	
}

Что будет выведено на экран в результате выполнения следующего фрагмента программы?

A x ;
x = new A();
System.out.print (x.y);
System.out.println (x.x);


Ответ:

 (1) null0 

 (2) 00 

 (3) 0 

 (4) на экран ничего не выведется 

 (5) программа завершится ошибкой 


Номер 6
В программе описан класс:

class A {
	int x=0;
	int y=0;	
}

Что будет выведено на экран в результате выполнения следующего фрагмента программы?

A x, y ;
x = new A();
System.out.print (x.y);
System.out.println (y.x);


Ответ:

 (1) nullnull 

 (2) 00 

 (3) 0 

 (4) на экран ничего не выведется 

 (5) программа завершится ошибкой 


Упражнение 9:
Номер 1
В классе A некоторые переменные объявлены с модификатором static. Какие из нижеперечисленных утверждений верны?

Ответ:

 (1) к этим переменным можно обращаться только через объект класса A 

 (2) к этим переменным можно обращаться независимо от объектов класса A 

 (3) эти переменные совместно используются всеми экземплярами класса A 

 (4) эти переменные не доступны через объекты класса A, а изменяются только внутри методов класса A 

 (5) все вышеперечисленные варианты не верны 


Номер 2
В классе A некоторые методы объявлены с модификатором static. Какие из нижеперечисленных утверждений верны?

Ответ:

 (1) эти методы могут вызывать только другие статические методы 

 (2) эти методы могут быть вызваны только экземплярами класса A 

 (3) эти методы должны обращаться только к статическим данным 

 (4) эти методы могут быть вызваны до того, как будут созданы какие либо экзмепляры класс A 

 (5) все вышеперечисленные утверждения верны 


Номер 3
В классе A некоторые методы объявлены с модификатором static. Какие из нижеперечисленных утверждений неверны?

Ответ:

 (1) эти методы могут вызывать только другие статические методы 

 (2) эти методы могут быть вызваны только экземплярами класса A 

 (3) эти методы должны обращаться только к статическим данным 

 (4) эти методы могут быть вызваны после того, как будут созданы какие либо экзмепляры класс A 

 (5) все вышеперечисленные утверждения верны 


Номер 4
Класс B определен как внутренний нестатический класс для A. Какие утверждения из нижеперечисленных верны?

Ответ:

 (1) класс B имеет доступ ко всем полям и методам класса A, неотмеченным спецификатором доступа private 

 (2) класс B имеет доступ ко всем полям и методам класса A независимо от спецификаторов доступа 

 (3) класс A имеет доступ ко всем полям и методам класса B, неотмеченным спецификатором доступа private 

 (4) класс A имеет доступ ко всем полям и методам класса B независимо от спецификаторов доступа 

 (5) класс A не имеет доступа ни к каким полям и методам класса B 


Номер 5
Класс B определен как внутренний нестатический класс для A. Какие утверждения из нижеперечисленных не верны?

Ответ:

 (1) класс B имеет доступ ко всем полям и методам класса A, неотмеченным спецификатором доступа private 

 (2) класс B имеет доступ ко всем полям и методам класса A независимо от спецификаторов доступа 

 (3) класс A имеет доступ ко всем полям и методам класса B, неотмеченным спецификатором доступа private 

 (4) класс A имеет доступ ко всем полям и методам класса B независимо от спецификаторов доступа 

 (5) класс A не имеет доступа ни к каким полям и методам класса B 


Номер 6
Класс B определен как внутренний нестатический класс для A. Какое утверждение из нижеперечисленных верно?

Ответ:

 (1) класс B имеет доступ ко всем полям класса A, но не имеет доступа к его методам 

 (2) класс B имеет доступ ко всем методам класса A но не имеет доступа к его полям 

 (3) класс A имеет доступ ко всем методам класса B, но не имеет доступа к его полям 

 (4) класс A имеет доступ ко всем полям класса B но не имеет доступа к его методам 

 (5) классы A и B имеют полный доступ к полям и методам друг друга 


Упражнение 10:
Номер 1
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	public static char i = 'a';
	A() {
		i ++;
	}
}
...	
	A x = new A();
	System.out.print(x.i);
	A y  = new A();
	System.out.print(x.i++);
	System.out.print(y.i);
...


Ответ:

 (1) abc 

 (2) bcd 

 (3) bbc 

 (4) bcc 

 (5) выполнение программы приведет к ошибке 


Номер 2
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	public static int a = 0;
	A() {
		a++;
	}
}
...
		A x = new A();
		A y = new A();
		for (int i=0; i< 5; i++)
			if (i % 2 == 0)
				System.out.print(x.a);
			else 
				System.out.print(y.a++);


Ответ:

 (1) 00112 

 (2) 01122 

 (3) 12233 

 (4) 23344 

 (5) 22334 


Номер 3
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	public static int a = 0;
	A() {
		a++;
	}
}
...
		A x = new A();
		A y = new A();
		int q ;
		for (int i=0;i< 5; i++) {
			q=(i>2)?++x.a:y.a++;
			System.out.print(q);
		}


Ответ:

 (1) 01234 

 (2) 01345 

 (3) 23567 

 (4) 23467 

 (5) 23478 


Номер 4
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	final int a = 2;
	int b;
}
...
	A x = new A();
	x.a = 1;
	x.b = 2;
	System.out.println(x.a + x.b);
...


Ответ:

 (1) 1 + 2 

 (2) 4 

 (3) 3 

 (4) 2 + 2 

 (5) выполнение программы приведет к ошибке 


Номер 5
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	public static int i = 0;
	A() {
		i ++;
	}
}
...
	A x = new A();
	System.out.print(x.i);
	A y  = new A();
	System.out.print(x.i);
	System.out.print(y.i);
...


Ответ:

 (1) 111 

 (2) 121 

 (3) 122 

 (4) 011 

 (5) выполнение программы приведет к ошибке 


Номер 6
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	static int i = 0;
	A() {
		i++;
	}
}
...	
	A x = new A();
	System.out.print(x.i);
	A y  = new A();
	System.out.print(x.i);
	System.out.print(y.i);
...


Ответ:

 (1) 112 

 (2) 122 

 (3) 223 

 (4) 222 

 (5) выполнение программы приведет к ошибке 


Упражнение 11:
Номер 1
Какие из перечисленных компонентов класса А будут доступны  расширяющему его классу в том же пакете?

Ответ:

 (1) static int a; 

 (2) protected double getPrice(double pr, double extra)  

 (3) private char showChar(int num) 

 (4) protected byte number; 

 (5) boolean flag; 


Номер 2
Какой из перечисленных компонентов класса А не будет доступен  расширяющему его классу в другом пакете?

Ответ:

 (1) static int a; 

 (2) protected double getPrice(double pr, double extra)  

 (3) private char showChar(int num) 

 (4) protected byte number; 

 (5) boolean flag; 


Номер 3
Какие из перечисленных компонентов класса А будут доступны  расширяющему его классу в другом пакете?

Ответ:

 (1) private double getCorner (double sinus, double cosinus) 

 (2) static double sinus; 

 (3) public static double sinus; 

 (4) double sinus; 

 (5) protected double getCorner (double sinus, double cosinus) 


Номер 4
Какие из перечисленных компонентов класса А будут доступны только расширяющему его классу B?

Ответ:

 (1) public short a; 

 (2) protected void summ (int a, int b) 

 (3) void pow (int a, double b) 

 (4) protected int summ (double x1, double x2) 

 (5) public void mult (float a) 


Номер 5
Какой из перечисленных компонентов класса А не будет доступен расширяющему его классу B?

Ответ:

 (1) public short a; 

 (2) protected void summ (int a, int b) 

 (3) private void pow (int a, double b) 

 (4) protected int summ (double x1, double x2) 

 (5) void mult (float a) при условии что классы А и B находятся в одном пакете 


Номер 6
Какие из перечисленных компонентов класса А не будут доступны расширяющему его классу?

Ответ:

 (1) public char ch; 

 (2) void summ (int a, int b) при условии что классы А и B находятся в разных пакетах 

 (3) private void pow (int a, double b) 

 (4) protected double summ (double x1, double x2) 

 (5) private int uns; 


Упражнение 12:
Номер 1
В программе приведено следующее описание метода showDate() класса Date: abstract void showDate(String str);. Какие нижеперечисленные фрагменты кода допустимы?

Ответ:

 (1) abstract class Date { 

 (2) Date obj = new Date(); 

 (3) class A extends Date { void showDate(String str) { System.out.println(str); } }  

 (4) class A extends Date { String strDate; void getDate(String str) { strDate = str; } }  


Номер 2
В программе приведено следующее описание:

abstract class A {
	abstract void method (int a, int b);
	
 }
class B extends A {
	int x;
	int y;
	void method (int a, int b) {
		x = a;
		y = b;
	}
}

Какие нижеперечисленные фрагменты кода допустимы?

Ответ:

 (1) A x = new A() ; B y = new B(); x = y;  

 (2) A x ; B y = new B(); x = y;  

 (3) A x = new B(); 

 (4) A x = new A(); x = new B();  

 (5) ни один из вышеперечисленных 


Номер 3
В программе приведено следующее описание:

abstract class A {
	abstract void method (int a, int b);
	
 }
class B extends A {
	int x;
	int y;
	void method (int a, int b) {
		x = a;
		y = b;
	}
}

Какие нижеперечисленные фрагменты кода недопустимы?

Ответ:

 (1) A x = new A() ; B y = new B(); x = y;  

 (2) A x ; B y = new B(); x = y;  

 (3) A x = new B(); 

 (4) A x = new A(); x = new B();  

 (5) все вышеперечисленные 


Номер 4
В программе приведено следующее описание класса Shape:

abstract class Shape {
	double square;
	abstract public void setSquare(double s);
}

Какие нижеперечисленные фрагменты кода допустимы?

Ответ:

 (1) Shape sh = new Shape; sh.setSquare(31.5);  

 (2) class Triangle extends Shape { public void setSquare(double s) { this.square = s; } }  

 (3) class Circle extends Shape { double rad; final double PI = 3.14; }  

 (4) class Triangle extends Shape { public int setSquare(double s) { this.square = s; } }  

 (5) класс Shape описан неверно. Программа завершиться ошибкой 


Номер 5
В программе приведено следующее описание класса Shape:

abstract class Shape {
	double square;
	abstract public void setSquare(double s);
}

Какие нижеперечисленные фрагменты кода допустимы?

Ответ:

 (1) Shape sh = new Shape; sh.setSquare(31.5);  

 (2) class Triangle extends Shape { public void setSquare(double s) { this.square = s; } }  

 (3) abstract class Circle extends Shape { double rad; final double PI = 3.14; }  

 (4) class Triangle extends Shape { public int setSquare(double s) { this.square = s; } }  

 (5) класс Shape описан неверно. Программа завершиться ошибкой 


Номер 6
В программе приведено следующее описание класса Perimetr:

abstract class Perimetr {
	double perimetr;
	abstract public void setPerimetr(double p);
}

Какие нижеперечисленные фрагменты кода допустимы?

Ответ:

 (1) Perimetr sh = new Perimetr; sh.setPerimetr(55.2);  

 (2) class Triangle extends Perimetr { public void setPerimetr(double p) { this.perimetr = p; } }  

 (3) class Circle extends Perimetr { double rad; final float PI = 3.14; }  

 (4) class Triangle extends Perimetr { void setPerimetr(double p) { this.perimetr = s; } }  

 (5) класс Perimetr описан неверно. Программа завершиться ошибкой 


Упражнение 13:
Номер 1
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	…
}
class B extends A{
	…
}
class C extends B {
	…
}
public class MyClass {
	public static void main (String args[]) {
		A x1 = new A();
		B x2 = new B();
		C x3 = new C();
		x1 = x3;
		x2 = x3;
		System.out.println(!x1.equals(x2));
	}
}


Ответ:

 (1) ничего 

 (2) true 

 (3) false 

 (4) 1 

 (5) 0 


Номер 2
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	…
}
class B extends A{
	…
}
class C extends B {
	…
}
public class MyClass {
	public static void main (String args[]) {
		A x1 = new A();
		B x2 = new B();
		C x3 = new C();
		x1 = x3;
		x2 = x3;
		System.out.println(x1.getClass());
	}
}


Ответ:

 (1) ничего 

 (2) class A 

 (3) class C 

 (4) class B 

 (5) сообщение об ошибке 


Номер 3
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	…
}
class B extends A{
	…
}
class C extends B {
	…
}
public class MyClass {
	public static void main (String args[]) {
		A x1 = new A();
		B x2 = new B();
		C x3 = new C();
		x1 = x3;
		x2 = x3;
		System.out.println(x1.equals(x2)&&x1.equals(x3));
	}
}


Ответ:

 (1) сообщение об ошибке 

 (2) true 

 (3) false 

 (4) 1 

 (5) 0 


Номер 4
Какие операции со ссылочными переменными в теле метода main() не приведут к ошибке компиляции?

class A {
	…
}
class B extends A{
	…
}
class C extends B {
	…
}
public class MyClass {
	public static void main (String args[]) {
		A x1 = new A();
		B x2 = new B();
		C x3 = new C();
		…
	}
}


Ответ:

 (1) x1 = x2; 

 (2) x2 = x3; 

 (3) x3 = x1; 

 (4) x1 = x3; 

 (5) все перечисленные операции ошибочны 


Номер 5
Какая операция со ссылочными переменными в теле метода main() не приведет к ошибке компиляции?

class A {
	…
}
class B extends A{
	…
}
class C extends B {
	…
}
public class MyClass {
	public static void main (String args[]) {
		A x1 = new A();
		B x2 = new B();
		C x3 = new C();
		…
	}
}


Ответ:

 (1) x1 = x2; 

 (2) x3 = x1; 

 (3) x2 = x1; 

 (4) x1 = x3; 

 (5) все перечисленные операции ошибочны 


Номер 6
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

class A {
	…
}
class B extends A{
	…
}
class C extends B {
	…
}
public class MyClass {
	public static void main (String args[]) {
		A x1 = new A();
		B x2 = new B();
		C x3 = new C();
		x1 = x3;
		x2 = x3;
		System.out.println(x1.equals(x2));
	}
}


Ответ:

 (1) ничего 

 (2) true 

 (3) false 

 (4) 1 

 (5) 0 


Упражнение 14:
Номер 1
Какое из перечисленных утверждений верное?

Ответ:

 (1) в классе-наследнике могут быть переопределены любые методы класса-родителя 

 (2) в классе-наследнике могут быть переопределены только методы класса-родителя, не отмеченные модификаторами final static 

 (3) в классе-наследнике могут быть переопределены только методы класса-родителя, не отмеченные модификаторами private final static 

 (4) в классе-наследнике могут быть переопределены только методы класса-родителя, не отмеченные модификатором private 

 (5) в классе-наследнике могут быть переопределены только методы класса-родителя, не отмеченные модификаторами private static 


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

Ответ:

 (1) не может быть унаследован класс, объявленный как abstract 

 (2) не может быть унаследован класс, объявленный как final 

 (3) не может быть унаследован внутренний класс 

 (4) не может быть унаследован класс, являющийся наследником абстрактного класса 

 (5) ни одно из перечисленных утверждений не верно 


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

Ответ:

 (1) не может быть унаследован класс, объявленный как abstract 

 (2) не может быть унаследован класс, объявленный как final 

 (3) не может быть унаследован внутренний класс 

 (4) не может быть унаследован класс, являющийся наследником абстрактного класса 

 (5) не может быть унаследован класс, содержащий только private-компоненты 


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

Ответ:

 (1) все объекты класса-родителя могут использовать любые методы и поля класса-наследника 

 (2) все объекты класса-наследника могут использовать любые методы и поля класса-родителя, отмеченные спецификатором доступа private 

 (3) все объекты класса-наследника могут использовать любые методы и поля класса-родителя, неотмеченные спецификатором доступа private 

 (4) все объекты класса-наследника могут использовать только методы и поля класса-родителя, отмеченные спецификатором доступа protected 

 (5) все объекты класса-родителя могут использовать только методы и поля класса-наследника, отмеченные спецификатором доступа protected 


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

Ответ:

 (1) все объекты класса-родителя могут использовать любые методы и поля класса-наследника 

 (2) все объекты класса-наследника могут использовать любые методы и поля класса-родителя, отмеченные спецификатором доступа private 

 (3) все объекты класса-наследника могут использовать любые методы и поля класса-родителя, неотмеченные спецификатором доступа private 

 (4) все объекты класса-наследника могут использовать только методы и поля класса-родителя, которые не имеют спецификатора доступа 

 (5) все объекты класса-родителя могут использовать только методы и поля класса-наследника, которые не имеют спецификатора доступа 


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

Ответ:

 (1) все объекты класса-наследника могут использовать поля и методы класса-родителя со спецификатором доступаpublic 

 (2) все объекты класса-наследника могут использовать поля и методы класса-родителя со спецификатором доступаprotected 

 (3) все объекты класса-наследника могут использовать поля и методы класса-родителя со спецификатором доступаprivate 

 (4) все объекты класса-наследника могут использовать поля и методы класса-родителя без спецификатора доступа, если оба класса находятся в одном пакете 

 (5) ни одно утверждение не верно 


Упражнение 15:
Номер 1
В программе приведено следующее описание:

1 class A {
2	int a;
3	int b;
4 }
5 class B extends A{
6	int b;
7 ...
8 }

Каким кодом необходимо дополнить описание конструктора класса B, наследующего класс A, чтобы при создании объкта класса B, переменные класса A принимали знаничение 1?

Ответ:

 (1) a.A = b.A = 1; 

 (2) super.a=1; super.b = 1; 

 (3) A.a = 1; A.b = 1; 

 (4) sup.a = 1; sup.b = 1; 

 (5) a.super() = 1; b.super() = 1; 


Номер 2
В программе приведено следующее описание:

1 class A {
2	int a;
3	int b;
4 }

Каким кодом необходимо дополнить описание конструктора класса B, наследующего класс A, чтобы при создании объкта класса B, переменные класса A принимали знаничение 1?

Ответ:

 (1) a.A = b.A = 1; 

 (2) super.a=1; super.b = 1; 

 (3) super.a = super.b = 1; 

 (4) sup.a = 1; sup.b = 1; 

 (5) a.super() = 1; b.super() = 1; 


Номер 3
В программе приведено следующее описание:

1 class A {
2	int a;
3	int b;
4 }

Каким кодом необходимо дополнить описание конструктора класса B, наследующего класс  A, чтобы при создании объкта класса B, переменные класса A принимали знаничение 1?

Ответ:

 (1) a.A = b.A = 1; 

 (2) super().a=1=super().b = 1; 

 (3) sup.a = 1; sup.b = 1; 

 (4) super.a = super.b = 1; 

 (5) a.super() = 1; b.super() = 1; 


Номер 4
B программе описан класс А и его наследник класс B:

1 class A {
2	int a;
3	int b;
4 }
5 class B extends A{
6	int b;
7 ...
8 }

Каким кодом необходимо дополнить строку 7, чтобы в классе B переменная b класса А устанавливалась равной 1?

Ответ:

 (1) b.A = 1; 

 (2) super.b = 1; 

 (3) b = 1; 

 (4) sup.b = 1; 

 (5) b.super() = 1; 


Номер 5
B программе описан класс А и его наследник класс B:

1 class A {
2	int a;
3	int b;
4 }
5 class B extends A{
6	int b;
7 ...
8 }

Каким кодом необходимо дополнить строку 7, чтобы в классе B переменная b класса А устанавливалась равной 1?

Ответ:

 (1) b.A = 1; 

 (2) super.b = 1; 

 (3) A.b = 1; 

 (4) sup.b = 1; 

 (5) b.super() = 1; 


Номер 6
B программе описан класс А и его наследник класс B:

1 class A {
2	int a;
3	int b;
4 }
5 class B extends A{
6	int b;
7 ...
8 }

Каким кодом необходимо дополнить строку 7, чтобы в классе B переменная b класса А устанавливалась равной 1?

Ответ:

 (1) b.A = 1; 

 (2) super.b = 1; 

 (3) A.b = 1; 

 (4) b = 1; 

 (5) b.super() = 1; 


Упражнение 16:
Номер 1
В программе приведено следующее описание:

1	class A {
2		int a ;
3		A(int x){
4			a = x;
5		}
6	}
7	class B extends A {
8		int b;
9		B(int x){
10			super(x);
11			b = x;
12		}
13	}

Выполнение программы завершилось ошибкой. Какое изменение необходимо внести, чтобы исключить ошибку?

Ответ:

 (1) модификаторы доступа классов A и B необходимо установить public 

 (2) строку 10 следует заменить на: super.A(); 

 (3) строку 10 следует заменить на: A(x); 

 (4) строку 10 следует заменить на: sup(); 

 (5) никаких изменений вносить не нужно, так как ошибок нет 


Номер 2
В программе приведено следующее описание:

1 class A {
2	double a;
3	double b;
4 }
5 class B extends A {
6	double c;
7	B(double p, double q, double v){
8		super(p,q);
9		c = v;
10	}
11 }

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

Ответ:

 (1) в описание A добавить конструктор с тремя параметрами типа double 

 (2) в описание A добавить конструктор с двумя параметрами типа double 

 (3) в описание класса B добавить метод super() с двумя параметрами типа double 


Номер 3
В программе приведено следующее описание:

1 class A {
2	private int a;
3 }
4 class B extends A {
5	int b;
6	B(){
7		super();
8		b = 0;
9	}
10 }

Выполнение программы завершилось ошибкой. Какие изменения могут быть внесены для исключения ошибки?

Ответ:

 (1) добавить в A описание конструктора без параметров 

 (2) добавить в B описание метода super() без параметров 

 (3) изменить модификатор доступа к a на public 

 (4) никаких изменений вносить не нужно 


Номер 4
В программе определены класс Shape и его наследник класс Circle:

1 class Shape {
2	double square;
3	Shape(double r){
4		square = 3.14 * r* r;
5	}
6 }
7 class Circle extends Shape {
8	double r;
9	Circle (double rad) {
10		r = rad;
11		super(rad);
12	}
13 }

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

Ответ:

 (1) добавить в описание класса Circle описание конструктора без параметров 

 (2) изменить очередность следования строк 10 и 11 

 (3) изменить имя переменной в строке 3 на отличное от r и rad 

 (4) заменить ключевое слово super в строке 11 на Shape 

 (5) добавить в описание класса Shape описание конструктора без параметров 


Номер 5
В программе определены класс Shape и его наследник класс Circle:

1 class Shape {
2	double square;
3	Shape(double r){
4		square = 3.14 * r* r;
5	}
6 }
7 class Circle extends Shape {
8	double r;
9	Circle (double rad) {
10		super(rad);
11		r = rad;
12	}
13 }

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

Ответ:

 (1) добавить в описание класса Circle описание конструктора без параметров 

 (2) изменить очередность следования строк 10 и 11 

 (3) изменить имя переменной в строке 3 на отличное от r и rad 

 (4) заменить ключевое слово super в строке 11 на Shape 

 (5) ошибки нет, ничего изменять не нужно 


Номер 6
В программе приведено следующее описание:

1	class A {
2		int a ;
3		A(int x){
4			a = x;
5		}
6	}
7	class B extends A {
8		int b;
9		B(int x){
10			super.A(x);
11			b = x;
12		}
13	}

Выполнение программы завершилось ошибкой. Какое изменение необходимо внести, чтобы исключить ошибку?

Ответ:

 (1) модификаторы доступа классов A и B необходимо установить public 

 (2) строку 10 следует заменить на: super.A(); 

 (3) строку 10 следует заменить на: A(x); 

 (4) строку 10 следует заменить на: super(x); 

 (5) никаких изменений вносить не нужно 


Упражнение 17:
Номер 1
Какой из перечисленных методов является переопределением метода public int[] inverse (int ar[], int size) класса родителя?

Ответ:

 (1) public int inverse (int a, int b) 

 (2) public int inverse (double a[], double size) 

 (3) public int[] method (int ar[], int size) 

 (4) public int[] inverse (int arr[], int arSize) 

 (5) protected int[] inverse (int arr[], int arSize) 

 (6) ни один из вышеперечсиленных 


Номер 2
Какие из перечисленных методов являются переопределением метода public int[] inverse (int ar[], int size) класса родителя?

Ответ:

 (1) public int inverse (int a, int b) 

 (2) public int[] inverse (double a[], double size) 

 (3) public int[] inverse (int a, int b) 

 (4) public int[] inverse (int x[], int y) 

 (5) public int[] inverse (int arr[]) 

 (6) ни один из вышеперечсиленных 


Номер 3
Какой из перечисленных методов является переопределением метода public int[] inverse (int ar[], int size) класса родителя?

Ответ:

 (1) public int inverse (int a, int b) 

 (2) private int[] inverse (double a[], double size) 

 (3) public int[] method (int ar[], int size) 

 (4) public int inverse (int arr[], int arSize) 

 (5) private int[] inverse (int arr[], int arSize) 

 (6) ни один из вышеперечсиленных 


Номер 4
Какие из перечисленных методов являются переопределением метода public void method (int i, int j) класса родителя?

Ответ:

 (1) public void method (int a, int b) 

 (2) public int method (int a, int b) 

 (3) public void method (int i, int j) 

 (4) public void method (int a, int b, int c) 

 (5) все вышеперечисленные 


Номер 5
Какой из перечисленных методов является переопределением метода public double method (boolean flag, char ch) класса родителя?

Ответ:

 (1) public void method (int a, int b) 

 (2) public int method (int a, int b) 

 (3) public double method (boolean i, char j) 

 (4) public void method (int a, int b, int c) 

 (5) все вышеперечисленные 


Номер 6
Какой из перечисленных методов является переопределением метода public void method (double x1, double x2) класса родителя?

Ответ:

 (1) public void method (int a, int b) 

 (2) public void method (double a, double b) 

 (3) public double method (double a, double b) 

 (4) protected void method (double a, double b) 

 (5) ни один из вышеперечисленных 


Упражнение 18:
Номер 1
Какой метод класса A нельзя будет переопределить в классах наследниках в том же пакете?

Ответ:

 (1) static int arrayLength(double arr[]) 

 (2) final double arrayAverage(double arr[]) 

 (3) private void arraySort(char arr[])  

 (4) void arrayReverse(double arr[]) 

 (5) ни один из вышеперечисленных 


Номер 2
Какие методы класса A можно будет переопределить в классах наследниках в другом пакете?

Ответ:

 (1) static int arrayLength(double arr[]) 

 (2) final double arrayAverage(double arr[]) 

 (3) private void arraySort(char arr[])  

 (4) void arrayReverse(double arr[]) 

 (5) ни один из вышеперечисленных 


Номер 3
Какой метод класса A нельзя будет переопределить в классах наследниках?

Ответ:

 (1) private static char method1 (int a, char b) 

 (2) final int method2 (boolean flag) 

 (3) private int method3 (double arr[]) 

 (4) final int method4 (double a, double b) 

 (5) все вышеперечисленные 


Номер 4
Метод method не должен переопределяться в классах наследниках. Какой модификатор необходимо использовать для отказа от переопределения?

Ответ:

 (1) private 

 (2) final 

 (3) protected 

 (4) без модификатора 

 (5) public 


Номер 5
Какой метод класса A нельзя будет переопределить в классах наследниках?

Ответ:

 (1) public int method2 (char a, char b) 

 (2) final int method1 (boolean q) 

 (3) protected void method3 () 

 (4) static double pow (double a, double q) 

 (5) ни один из вышеперечисленных 


Номер 6
Какие методы класса A нельзя будет переопределить в классах наследниках?

Ответ:

 (1) final int method1 (int a, char b) 

 (2) static int method2 (boolean flag) 

 (3) protected int method3 () 

 (4) private int method4 (double a, double b) 

 (5) ни один из вышеперечисленных 


Упражнение 19:
Номер 1
Что послужило причиной ошибки компиляции нижеследующего фрагмента программы? 

class A {
	double r1;
	void show (){
		System.out.print(r1);
	}
}
class B extends A{
	double r1;
	int show(String message){
		System.out.print(message);
        return 0;
	}
}
class C extends B {
	int a;
	int q;
...
}


Ответ:

 (1) класс B не может быть наследником какого-либо класса 

 (2) в классе B не может быть переопределен метод show() 

 (3) в классе B не может быть перегружен метод show() 

 (4) классы A и B не могут содержать переменную с одинаковым именем 

 (5) программа отработает без ошибок 


Номер 2
Что послужило причиной ошибки компиляции нижеследующего фрагмента программы? 

class A {
	double r;
	final void show (){ ... }
}
class B extends A{
	double r1;
	final int show(){ ... }
}
class C extends B {
	double show(int val) { ... }
}


Ответ:

 (1) класс B не может быть наследником какого-либо класса 

 (2) в классе B не может быть переопределен метод show() 

 (3) в классе B у метода show() должно быть несколько аргументов или один не типа int 

 (4) в классе C не может быть переопределен метод show() 

 (5) в классе C не может быть перегружен метод show() 


Номер 3
Что послужило причиной ошибки компиляции нижеследующего фрагмента программы? 

class A {
	double r1;
	void show (){ ... }
}
class B extends A{
	double r1;
	int show(){ ... }
}
class C extends B {
	double show() { ... }
}


Ответ:

 (1) в классе B не может содержаться переменная r1 

 (2) методы show() во всех трех классах должны иметь одинаковый тип возвращаемого значения 

 (3) в классе B не может быть перегружен метод show() 

 (4) в классе C не может быть переопределен метод show() 

 (5) методы show() во всех трех классах должны отличаться сигнатурой 


Номер 4
Что послужило причиной ошибки компиляции нижеследующего фрагмента программы? 

class A {
	double r;
...	
}
final class B extends A{
	double r;
...
}
class C extends B {
	int a;
	int q;
...
}


Ответ:

 (1) класс B не может быть наследником какого-либо класса 

 (2) класс B не может быть унаследован каким-либо классом 

 (3) описание класса B не может предваряться модификатором final 

 (4) классы A и B не могут содержать переменную с одинаковым именем 

 (5) ни одна из вышеперечисленных причин не верна 


Номер 5
Что послужило причиной ошибки компиляции нижеследующего фрагмента программы? 

class A {
	double r;
	final void show (){
		System.out.print(r);
	}
}
class B extends A{
	double r1;
	void show(){
		System.out.print(r1);
	}
}
class C extends B {
	int a;
	int q;
...
}


Ответ:

 (1) класс B не может быть наследником какого-либо класса 

 (2) в классе B не может быть переопределен метод show() 

 (3) описание класса B не может предваряться модификатором final 

 (4) классы A и B не могут содержать переменную с одинаковым именем 

 (5) ни одна из вышеперечисленных причин не верна 


Номер 6
Какое изменение следует внести в следующий фрагмент программы, чтобы сделать невозможным переопределение метода show() класса A в классе B?  

class A {
	double r;
	void show (){
		System.out.print(r);
	}
}
class B extends A{
	double r1;
	void show(){
		System.out.print(r1);
	}
}
class C extends B {
	int a;
	int q;
...
}


Ответ:

 (1) метод show() класса A следует предварить спецификатором доступа protected 

 (2) метод show() класса A следует предварить модификатором final 

 (3) метод show() класса A следует предварить модификатором finally 

 (4) метод show() класса A следует предварить спецификатором доступа private 

 (5) никаких изменений вносить не нужно 


Упражнение 20:
Номер 1
Что будет выведено на экран в результате работы следующего фрагмента программы?

class A {
		int a ;
		public void show (){
			System.out.print(a++);
		}
		A(int x){ a = --x; }
	}
class B extends A {
		int a;
		public void show (){
			super.show();
		}
		B(int x){ super(x++); a = x; }
	}
...
B x = new B(4); x.show();


Ответ:

 (1) 5 

 (2) 44 

 (3) 3 

 (4) 4 

 (5) сообщение об ошибке 


Номер 2
Что будет выведено на экран в результате работы следующего фрагмента программы?

class A {
		public static int a ;
		public void show (){
			System.out.print(a++);
		}
		A(int x){ a = --x; }
	}
class B extends A {
		int a;
		public void show (){
			super.show();
		}
		B(int x){ super(++x); a = x; }
	}
...
B x = new B(4); x.show();


Ответ:

 (1) 5 

 (2) 44 

 (3) 3 

 (4) 4 

 (5) сообщение об ошибке 


Номер 3
Что будет выведено на экран в результате работы следующего фрагмента программы?

class A {
	private int a ;
	public void show (){
		System.out.print(a++);
	}
	A(int x){ a = x%2==0?--x:x--; }
}
class B extends A {
	int a;
	public void show (){
		super.show();
	}
	B(int x){ super(++x); a = x; }
}
...
B x = new B(4); x.show();


Ответ:

 (1)

 (2) 44 

 (3)

 (4)

 (5) сообщение об ошибке 


Номер 4
Что будет выведено на экран в результате работы следующего фрагмента программы?

class A {
	int a = 0, b = 0;
	
	void sum () {
		System.out.print(a + b);
	}
}
class B extends A{
	int c,d ;
	B(int b1, int b2) {
		super();
		c = b1;
		d = b2;
	}
	void sum() {
		System.out.print(c + d);
	}
}
...
B x = new B(1,2);
x.sum();


Ответ:

 (1) 0 + 0 

 (2) 0 

 (3) 1 + 2 

 (4) 3 

 (5) 03 


Номер 5
Что будет выведено на экран в результате работы следующего фрагмента программы?

class A {
	int a = 0;
	void show () {
		System.out.print(a);
	}
}
class B extends A{
	int a = 1 ;
	void show () {
		System.out.print(a);
		super.show();
	}
}
...
B x = new B();
x.show();


Ответ:

 (1) 1 

 (2) 0 

 (3) 10 

 (4) 01 

 (5) 11 


Номер 6
Что будет выведено на экран в результате работы следующего фрагмента программы?

class A {
		int a ;
		public void show (){
			System.out.print(a++);
		}
		A(int x){ a = ++x; }
	}
class B extends A {
		int a;
		public void show (){
			super.show();
		}
		B(int x){super(x); a = --x; }
	}
...
B x = new B(4); x.show();


Ответ:

 (1) 35 

 (2) 45 

 (3) 4 

 (4) 5 

 (5) сообщение об ошибке 


Упражнение 21:
Номер 1
Какое пространство имен для хранения классов пакета определяет следующая инструкция: package mypackage.users.administrators.files;?

Ответ:

 (1) files 

 (2) mypackage.files 

 (3) users.administrators.files 

 (4) administrators.files 

 (5) mypackage.users.administrators.files 


Номер 2
Какой каталог в файловой системе операционной системы Windows, соответсвует пакету, объявленному, как: package mypackage.users.administrators.files;?

Ответ:

 (1) mypackage\users\administrators\files\ 

 (2) users\administrators\files\ 

 (3) mypackage\ 

 (4) administrators\files\ 

 (5) files\ 


Номер 3
Какой каталог в файловой системе операционной системы Unix, соответсвует пакету, объявленному, как: package mypackage.users.administrators.files;?

Ответ:

 (1) mypackage/ 

 (2) users/administrators/files/ 

 (3) mypackage/users/administrators/files/ 

 (4) administrators/files/ 

 (5) files/ 


Номер 4
Какая из перечисленных инструкций обеспечит видимость пакета myPack.math в последующем коде?

Ответ:

 (1) package myPack.math; 

 (2) import package myPack.math; 

 (3) import myPack.math; 

 (4) using myPack.math; 

 (5) using package myPack.math; 


Номер 5
Какая из перечисленных инструкций обеспечит видимость пакетов, входящих в пакет java.io.* в последующем коде?

Ответ:

 (1) package java.io.*; 

 (2) import java.io.*; 

 (3) import package java.io.*; 

 (4) using java.io.*; 

 (5) using package java.io.*; 


Номер 6
Какое имя должен иметь каталог, в котором хранятся классы, относящиеся к пакету myFirstPackage?

Ответ:

 (1) packages/myfirstpackage 

 (2) myfirstpackage 

 (3) Myfirstpackage 

 (4) myFirstPackage 

 (5) в специальной автоматически создаваемой папке 


Упражнение 22:
Номер 1
Класс A неполностью реализует методы интерфейса B, каким образом он должен быть определен?

Ответ:

 (1) как final-класс 

 (2) как внутренний для другого класса 

 (3) как abstract-класс 

 (4) как private-класс 

 (5) как интерфейс 


Номер 2
Внутри объявления интерфейса A объявлены и инициализированы постоянными значениями переменные, какие спецификаторы доступа будут присвоены им по умолчанию?

Ответ:

 (1) public  

 (2) public static 

 (3) public final static 

 (4) final static 

 (5) private 


Номер 3
Какой спецификатор доступа присваивается всем методам и переменным интерфейса по умолчанию?

Ответ:

 (1) public 

 (2) protected 

 (3) static 

 (4) final 

 (5) private 

 (6) ни один из вышеперчисленных 


Номер 4
Какие утверждения, относительно интерфейсов верны?

Ответ:

 (1) переменные, объявленные внутри интерфейса должны быть инициализированы постоянными значениями 

 (2) один класс может реализовывать только один интерфейс 

 (3) интерфейс может реализовываться одним или несколькими классами 

 (4) класс, реализующий интерфейс неполностью, должен быть объявлен, как abstract 

 (5) один интерфейс может наследовать другой 


Номер 5
Каким образом в класс A может быть влкючен некоторый набор констант, доступных для всех объектов класса?

Ответ:

 (1) определить набор final-переменных непосредственно в классе 

 (2) определить набор private-переменныx непосредственно в классе 

 (3) реализовать интерфейс, в котором определены public-переменные 

 (4) определить набор private-переменных в классе родителе 

 (5) реализовать интерфейс, в котором определены private-переменные 


Номер 6
Укажите подходящее описание класса B, если известно, что: abstract class B implements I?

Ответ:

 (1) класс B является абстрактным и наследует класс I 

 (2) класс B реализует класс I 

 (3) класс B является абстрактным и реализует интерфейс I 

 (4) класс B является абстрактным и частично реализует интерфейс I 

 (5) ни один вариант не верен 


Упражнение 23:
Номер 1
В какой переменной окружения хранятся несколько корневых каталогов иерархии пакетов в файловой системе компьютера?

Ответ:

 (1) PACKAGEROOT 

 (2) CLASSPATH 

 (3) ROOT 

 (4) CLASSROOT 

 (5) PACKAGEPATH 


Номер 2
Укажите, какое значение, имеет символ '*' в инструкции: import java.newpackage.*?

Ответ:

 (1) в программу должны быть подключены все пакеты, стоящие по иерархии ниже, чем newpackage 

 (2) в программу должен быть подключен весь пакет newpackage за исключением пакетов, стоящих по иерархии ниже 

 (3) программа должна игнорировать ошибку, если пакет newpackage не существует 

 (4) 1) и 2) верно 

 (5) все перечисленные предложения неверны 


Номер 3
Был импортирован некоторый пакет. Классы с каким модификатором доступа будут доступны в коде?

Ответ:

 (1) не отмеченные никакими модификаторами 

 (2) любые 

 (3) public 

 (4) private 

 (5) protected 


Номер 4
Какая информация храниться в переменной окружения CLASSPATH?

Ответ:

 (1) текущий рабочий каталог 

 (2) одно или несколько названий классов, к которым есть обращение в коде приложения 

 (3) корень иерархии пакетов текущего приложения в файловой системе компьютера 

 (4) ничего из вышеперечисленного 

 (5) один или несколько корневых каталогов иерархии пакетов, где хранятся пользовательские классы, к которым есть обращение в коде приложения 


Номер 5
Какая информация храниться в переменной окружения CLASSPATH?

Ответ:

 (1) текущий рабочий каталог 

 (2) корень иерархии пакетов в файловой системе компьютера 

 (3) корень иерархии пакетов текущего приложения в файловой системе компьютера 

 (4) названия классов, к которым есть обращение в коде приложения 

 (5) ничего из вышеперечисленного 


Номер 6
В какой переменной окружения хранится имя корневого каталога иерархии пакетов в файловой системе компьютера?

Ответ:

 (1) PACKAGEROOT 

 (2) ROOT 

 (3) CLASSPATH 

 (4) CLASSROOT 

 (5) PACKAGEPATH 


Упражнение 24:
Номер 1
Какие переменные класса А доступны его наследнику классу B, если они определены в одном пакете?

1	class A {
2		final int a = 5;
3		protected double c ;
4		protected int q;
5		private int j;
6 	}
7	class B extends A{
8		int c ;
9		B(int b1, int b2) {
10		    super();
11		    c = b1;
12	    }
13  }


Ответ:

 (1) a 

 (2) a, j 

 (3) c, q 

 (4) a,c,q 

 (5) j 


Номер 2
Какие переменные класса А доступны его наследнику классу B, если они определены в одном пакете?

1	class A {
2		public char ch= 'a';
3		protected short charCode;
4		protected short charCodeFin;
5		private int j;
6       int d;
7 	}


Ответ:

 (1) ch 

 (2) ch, j, d 

 (3) charCode, charCodeFin 

 (4) ch,charCode,charCodeFin, d 

 (5) j 


Номер 3
Какие переменные класса А доступны его наследнику классу B, если они определены не в одном пакете?

1	class A {
2		public char ch= 'a';
3		protected short charCode;
4		protected short charCodeFin;
5		private int j;
6       int d;
7 	}


Ответ:

 (1) ch 

 (2) ch, j 

 (3) ch, charCode, charCodeFin 

 (4) ch,charCode,charCodeFin, d 

 (5) j 


Номер 4
Каким кодом следует дополнить строку 1 следующего фрагмента программы, чтобы в нем определялся пакет NewPack?

1 ...
2 class A {
3	int a, b;
4	void sum () {
5		System.out.print(a + b);
6	}
7 }
8 class B extends A{
9	int c,d ;
10	B(int b1, int b2) {
11		super();
12		c = b1;
13		d = b2;
14	}
15	void sum() {
16		System.out.print(c + d);
17	}
18 }


Ответ:

 (1) new package newpack; 

 (2) package newpack; 

 (3) set package newpack; 

 (4) public package newpack; 


Номер 5
Какая переменная класса А недоступна его наследнику классу B?

1 package newpack;
2 public class A {
3	public int a;
4	protected double c ;
5	private protected int q;
6	private int j;
7 }
8 class B extends A{
9	int c ;
10	B(int b1, int b2) {
11		super();
12		c = b1;
13		d = b2;
14	}


Ответ:

 (1) в коде содержится ошибка 

 (2) c, q, j 

 (3) q, j 

 (4) q 

 (5) j 


Номер 6
Какая переменная класса А недоступна его наследнику классу B?

1	class A {
2		final int a;
3		protected double c ;
4		int q;
5		private int j;
6 	}
7	class B extends A{
8		int c ;
9		B(int b1, int b2) {
10		super();
11		c = b1;		
12	}


Ответ:

 (1) a 

 (2) a, j 

 (3) c, q 

 (4) a,c,q 

 (5) j 


Упражнение 25:
Номер 1
Класс А наследует класс B из пакета newpack. Каким кодом необходимо дополнить строку 1 следующего фрагмента программы, чтобы она выполнилась без ошибок?

1 	...
2	class A extends B {
3	int a, b;
4	void show () {
5		System.out.print(a);
6		System.out.print(b);
7	}
8 }


Ответ:

 (1) import java.newpack.*; 

 (2) class A extends java.newpack.* { 

 (3) class A extends java.newpack.B { 

 (4) class A extends B.newpack.java { 

 (5) import java.newpack.B; 


Номер 2
Класс А наследует класс B из пакета userspack. Как необходимо изменить программу, чтобы она выполнялась без ошибок?

1 	class A extends B {
2	...
3	}


Ответ:

 (1) перед строкой 1 добавить import java.userspack.*; 

 (2) перед строкой 1 добавить import java.userspack.B; 

 (3) строку 1 заменить на class A extends java.userspack.* { 

 (4) строку 1 заменить на class A extends java.userspack.B { 

 (5) изменения вносить не нужно 


Номер 3
Класс А наследует класс B и использует отдельные компоненты других классов из пакета userspack. Как необходимо изменить программу, чтобы она выполнялась без ошибок?

1 	class A extends B {
2	...
3	}


Ответ:

 (1) перед строкой 1 добавить import java.userspack.*; 

 (2) перед строкой 1 добавить import java.userspack.B; 

 (3) строку 1 заменить на class A extends java.userspack.* { 

 (4) строку 1 заменить на class A extends java.userspack.B { 

 (5) изменения вносить не нужно 


Номер 4
Класс A наследует класс B из пакета newpack. Каким кодом необходимо дополнить строку 1 следующего фрагмента программы, чтобы она выполнилась без ошибок?

1 ...
2	int a, b;
3	void show () {
4		System.out.print(a);
5		System.out.print(b);
6	}
7 }


Ответ:

 (1) import newpack.*; class A extends B {  

 (2) class A extends newpack.* { 

 (3) class A extends newpack.B { 

 (4) class A extends B.newpack { 

 (5) import *.newpack; class A extends B {  


Номер 5
Класс A наследует класс B из пакета newpack. Каким кодом необходимо дополнить строку 1 следующего фрагмента программы, чтобы она выполнилась без ошибок?

1 ...
2	int a, b;
3	void show () {
4		System.out.print(a);
5		System.out.print(b);
6	}
7 }


Ответ:

 (1) import newpack.*; class A extends B {  

 (2) class A extends newpack.* { 

 (3) class A extends newpack.B { 

 (4) class A extends B.newpack { 

 (5) import newpack.B; class A extends B {  


Номер 6
Класс A наследует класс B из пакета newpack. Каким кодом необходимо дополнить строку 1 следующего фрагмента программы, чтобы она выполнилась без ошибок?

1 	...
2	class A extends B {
3	int a, b;
4	void show () {
5		System.out.print(a);
6		System.out.print(b);
7	}
8 }


Ответ:

 (1) import newpack.*; 

 (2) import B.newpack.*; 

 (3) import newpack.B; 

 (4) import B; 

 (5) import newpack.B.java; 


Упражнение 26:
Номер 1
Укажите, какие методы должны быть реализованы в классе C?

interface A {
	double aMethod1();
	void aMethod2();
}
interface B extends A {
	int bMethod1();
}
class C implements B { ... }

Какие методы должны быть описаны в С?

Ответ:

 (1) aMethod1() 

 (2) bMethod1() 

 (3) aMethod2() 

 (4) никакие 

 (5) те, которые нужно реализовать для использованя в классе C 


Номер 2
Укажите, какой метод должен быть реализован в классе C?

interface A {
	double aMethod1();
	void aMethod2();
}
interface B extends A {
	int bMethod1();
}
abstract class C implements B { ... }


Ответ:

 (1) aMethod1() 

 (2) bMethod1() 

 (3) aMethod2() 

 (4) aMethod1(), aMethod2() 

 (5) те, которые нужно реализовать для использованя в классе C 


Номер 3
Укажите, какие методы должны быть реализованы в классе D?

interface A {
	double aMethod1();
	void aMethod2();
}
interface B extends A {
	int bMethod1();
}
abstract class C implements B {
    double aMethod1() { ... }
	int bMethod1() { ... }
}
class D extends C {
    ...
}


Ответ:

 (1) aMethod1() 

 (2) bMethod1() 

 (3) aMethod2() 

 (4) никакие 

 (5) те, которые нужно реализовать для использованя в классе C 


Номер 4
В программе приведено следующее описание:

interface A {
	void method1();
	void method2();
}
interface B extends A {
	void method3();
	void method4();
}
class C implements B {

Какие методы должны быть описаны в С?

Ответ:

 (1) только методы интерфейса B 

 (2) только методы интерфейса A 

 (3) методы интерфейсов A и B 

 (4) ни методы A, ни методы B 

 (5) необходимые методы из A и необходимые методы из B 


Номер 5
Укажите в каких случаях приведенный код допустим?

A[] x = new A[3];
x[0]=new B();
x[1] = new C();
x[2] = new D();


Ответ:

 (1) если A - интерфейс, а B, C и D класса, которые его реализуют 

 (2) если A - класс, а B, C и D класса, которые его наследуют 

 (3) если A, B, C и D - независимые интерфейсы 

 (4) если A, B, C и D - независимые классы 

 (5) если A - интерфейс, а B, C и D интерфейсы, которые его наследуют 


Номер 6
Укажите в каком случае приведенный код допустим?

interface B extends A {…}
class C implements B


Ответ:

 (1) если A - интерфейc 

 (2) если A - класс 

 (3) если A - абстрактный класс 

 (4) если A - пакет 

 (5) такой код недопустим 


Упражнение 27:
Номер 1
Какие из перечисленных заголовков класса допустимы?

Ответ:

 (1) class A extends B, C { 

 (2) final class A { 

 (3) abstract final class A { 

 (4) abstract final class A implements B { 

 (5) class A implements B, C { 


Номер 2
Какие из перечисленных заголовков класса допустимы?

Ответ:

 (1) final class A implements B, C  

 (2) abstract final class A extends B 

 (3) class A implements B 

 (4) abstract class A implements B, C  

 (5) final class A 


Номер 3
Какие из перечисленных заголовков класса допустимы?

Ответ:

 (1) abstract class A 

 (2) abstract class A implements B 

 (3) final class A extends B, C 

 (4) final class A extends B 

 (5) class A 


Номер 4
Какое ключевое слово используется для указания того, что класс реализует интерфейс?

Ответ:

 (1) extends 

 (2) implements 

 (3) import 

 (4) uses 

 (5) include 


Номер 5
Какой конструктор должен быть объявлен в теле интерфейса?

Ответ:

 (1) конструктор без параметров 

 (2) несколько подразумеваемых конструкторов 

 (3) конструктор с одним и конструктор без параметров 

 (4) конструктор по умолчанию 

 (5) в интерфейсе отсутсвует объявление конструкторов 


Номер 6
Какие из перечисленных заголовков описания класса недопустимы?

Ответ:

 (1) class A extends B, C { 

 (2) final class A {  

 (3) abstract final class A { 

 (4) abstract final class A implements B { 

 (5) class A implements B, C { 


Упражнение 28:
Номер 1
Компиляция программы завершилась ошибкой. Какие изменения могут быть внесены в код для ее устранения?

interface A{
	void aMethod1();
	void aMethod2();
}
interface B extends A{
	void bMethod3();
}
class C implements B{
	int cVar1;
	double cVar2;
	public void bMethod3(){
		cVar1 = 0;
	}
}


Ответ:

 (1) в тело класса C необходимо внести реализации методов aMethod1() и aMethod2() 

 (2) класс C необходимо описать как абстрактный 

 (3) класс C необходимо описать как абстрактный и в его тело необходимо внести реализации методов aMethod1() и aMethod2() 

 (4) в тело интерфейса B необходимо внести реализации методов aMethod1() и aMethod2() 

 (5) никаких измененений вносить не нужно 


Номер 2
Компиляция программы завершилась ошибкой. Какое изменение может быть внесено в код для ее устранения?

interface A{
	void aMethod1();
	void aMethod2();
}
interface B extends A{
	void bMethod3();
}
abstract class C implements B{
	int cVar1;
	void bMethod3(){
		cVar1 = 0;
	}
}


Ответ:

 (1) в тело класса C необходимо внести реализации методов aMethod1() и aMethod2() 

 (2) метод bMethod3() при реализации должен быть описан как public  

 (3) метод bMethod3() при реализации должне быть описан как public static 

 (4) убрать метод bMethod3() из класса C 

 (5) никаких измененений вносить не нужно 


Номер 3
Компиляция программы завершилась ошибкой. Какое изменение необходимо внести в код?

interface A{
	void aMethod1();
	void aMethod2();
}
interface B extends A{
	void bMethod3();
}
class C implements B{
	void bMethod3(){ ... }
	private void aMethod1(){ ... }
	protected void aMethod2(){ ... }
}


Ответ:

 (1) в классе C методы aMethod1() и aMethod2() должны быть описаны с модификатором public 

 (2) в классе C методы aMethod1() и aMethod2() должны быть описаны без модификаторов доступа 

 (3) в классе C методы aMethod1(), aMethod2() и bMethod3() должны быть описаны с модификатором доступа public 

 (4) реализация методов aMethod1() и aMethod2() должна быть перенесена в интерфейс B 

 (5) никаких измененений вносить не нужно 


Номер 4
Компиляция программы завершилась ошибкой. Какое изменение необходимо внести в код?

1 interface A {
2	void method1();
3	void method2();
4 }
5 abstract class B implements A {
6	public void method1(){
7		System.out.println("I'm here");
8	}
9	abstract int method3() ;
10 }
11 class C implements B {
12	int a;
13	int method3() {
14		return a;
15	}
16 }


Ответ:

 (1) класс B должен реализовывать методы method2() и method3() 

 (2) строка 5 должна быть изменена на abstract B extends A { 

 (3) строка 11 должна быть изменена на class C extends B { 

 (4) строка 5 должна быть изменена на interface B implements A { 

 (5) метод method2 должен быть реализован в классе B или в классе A 

 (6) никаких измененений вносить не нужно 


Номер 5
Компиляция программы завершилась ошибкой. Какие изменения необходимо внести в код?

1 interface A {
2	void method1();
3	void method2();
4 }
5 public class B implements A {
6	public void method1(){
7		System.out.println("I'm here");
8	}
9	int method3() ;
10 }
11 class C extends B {
12	int a;
13	int method3() {
14		return a;
15	}
16 }


Ответ:

 (1) класс B должен реализовывать методы method2() и method3() 

 (2) строка 5 должна быть изменена на final class B implements A { 

 (3) строка 11 должна быть изменена на class C implements B { 

 (4) строка 5 должна быть изменена на interface B extends A { 

 (5) никаких измененений вносить не нужно 


Номер 6
Компиляция программы завершилась ошибкой. Какое изменение необходимо внести в код?

1 interface A {
2	void method1();
3	void method2();
4 }
5 abstract B extends A {
6	public void method1(){
7		System.out.println("I'm here");
8	}
9	abstract int method3() ;
10 }


Ответ:

 (1) строка 5 должна быть изменена на abstract B extends A { 

 (2) строка 5 должна быть изменена на abstract class B extends A { 

 (3) строка 5 должна быть изменена на class B implements A { 

 (4) строка 5 должна быть изменена на abstract class B implements A { 

 (5) никаких измененений вносить не нужно 


Упражнение 29:
Номер 1
Как необходимо изменить программу, чтобы доступ к элементам класса A не имели даже его прямые наследники внутри и вне пакета newpack?

1  package newpack;
2  class A {
3	int a, b;
4	void sum () {
5		System.out.print(a + b);
6	}
7  }
8  class B extends A{
9	...
10 }
11 ...


Ответ:

 (1) описать A с модификатором доступа public 

 (2) описать все элементы A с модификатором доступа private, а сам A с модификатором по умолчанию 

 (3) описать все элементы A с модификатором доступа private, а сам A с модификатором public 

 (4) описать все элементы A с модификатором доступа public и сам A c модификатором доступа public 

 (5) описать A c модификатором доступа private 


Номер 2
Как необходимо изменить программу, чтобы доступ к элементам класса A имели только классы и элементы того же пакета newpack?

1  package newpack;
2  class A {
3	int a, b;
4	void sum () {
5		System.out.print(a + b);
6	}
7  }
8  class B extends A{
9	...
10 }
11 ...


Ответ:

 (1) описать A с модификатором доступа public 

 (2) описать все элементы A с модификатором доступа protected, а сам A с модификатором private 

 (3) описать A c модификатором доступа protected 

 (4) описать все элементы A с модификатором доступа public и сам A c модификатором доступа public 

 (5) оставить без изменений 


Номер 3
Как необходимо изменить программу, чтобы доступ к элементам класса A имели любые элементы внутри и вне пакета newpack?

1  package newpack;
2  class A {
3	int a, b;
4	void sum () {
5		System.out.print(a + b);
6	}
7  }
8  class B extends A{
9	...
10 }
11 ...


Ответ:

 (1) описать все элементы A с модификатором доступа public, описать A с модификатором доступа public 

 (2) описать все элементы A с модификатором доступа public, а сам A с модификатором доступа по умолчанию 

 (3) описать A c модификатором доступа по умолчанию 

 (4) описать все элементы A без модификаторов доступа, а сам A c модификатором доступа public 

 (5) описать A c модификатором доступа private 


Номер 4
Как необходимо изменить программу, чтобы доступ к элементам класса A имели только его прямые наследники внутри и вне пакета newpack?

1  package newpack;
2  class A {
3	int a, b;
4	void sum () {
5		System.out.print(a + b);
6	}
7  }
8  class B extends A{
9	...
10 }
11 ...


Ответ:

 (1) описать A с модификатором доступа public 

 (2) описать все элементы A с модификатором доступа protected, а сам A с модификатором private 

 (3) описать все элементы A c модификатором доступа protected 

 (4) описать все элементы A с модификатором доступа public и сам A c модификатором доступа public 

 (5) описать A c модификатором доступа private 


Номер 5
Как необходимо изменить программу, чтобы доступ к элементам a, b класса A имели его прямые наследники внутри и вне пакета newpack?

1  package newpack;
2  class A {
3	int a, b;
4	void sum () {
5		System.out.print(a + b);
6	}
7  }
8  class B extends A{
9	...
10 }
11 ...


Ответ:

 (1) описать a, b в A с модификатором доступа public 

 (2) описать a, b в A с модификатором доступа protected, а сам A с модификатором private 

 (3) описать a, b в А c модификатором доступа protected 

 (4) описать a, b в А с модификатором доступа public и сам A c модификатором доступа public 

 (5) описать a, b в А без модификатора доступа 


Номер 6
Как необходимо изменить программу, чтобы доступ к элементам a, b класса A имели все элементы внутри и только прямые наследники вне пакета newpack?

1  package newpack;
2  class A {
3	int a, b;
4	void sum () {
5		System.out.print(a + b);
6	}
7  }
8  class B extends A{
9	...
10 }
11 ...


Ответ:

 (1) описать a и b с модификатором доступа private 

 (2) описать a и b с модификатором доступа protected 

 (3) описать A c модификатором доступа public, а описать a иbb с модификатором доступа private 

 (4) описать a и b без модификатора доступа 

 (5) описать A c модификатором доступа private 


Упражнение 30:
Номер 1
При выполении программы было выдано сообщение об ошибке. Какие изменения необходимо внести в код?

interface A {
	double PI = 3.14;
	double G = 9.8;
	void method1();
	int method2();
	void method3(int a);
}
abstract class B implements A {
	double F (double m) {
		return G * m; 
	}
	void method1() {...	}
	int method2() { ... }
}


Ответ:

 (1) необходимо реализовать все методы A 

 (2) B должен быть унаследован от A 

 (3) method1() должен быть при реализации описан как public 

 (4) method2() должен быть при реализации описан как public 

 (5) B должен содержать хотя бы один конструктор 


Номер 2
При выполении программы было выдано сообщение об ошибке. Какие изменения необходимо внести в код?

interface A {
	char getChar(int Code);
	int getCode(char Character);
	void show();
}
class B implements A {
	char character;
	int charCode;
	char getChar(int Code) { ... }
	public int getCode(char Character) { ...	}
	public void show(char ch) { ... }
}


Ответ:

 (1) необходимо реализовать все методы A 

 (2) B должен быть унаследован от A 

 (3) метод getChar() должен быть при реализации описан как public 

 (4) getKode() не может быть при реализации описан как public 

 (5) B должен содержать хотя бы один конструктор 


Номер 3
При выполении программы было выдано сообщение об ошибке. Какое изменение может быть внесено в код?

interface A {
	char getChar(int Code);
	int getCode(char Character);
	void show();
}
class B implements A {
	char character;
	int charCode;
	public char getChar(int Code) { ... }
	public int getCode(char Character) { ... }
	public void show(char ch) { ... }
}


Ответ:

 (1) необходимо реализовать все методы A 

 (2) класс B объявить как абстрактный 

 (3) необходимы изменения 1) и 2) 

 (4) необходимо изменение 1) или 2) 

 (5) никаких изменений вносить не нужно 


Номер 4
При выполении программы было выдано сообщение об ошибке. Какое изменение необходимо внести в код?

1  interface A {
2	double PI = 3.14;
3	double G = 9.8;
4	void method1();
5	int method2();
6  }
7  abstract class B implements A {
8	double F (double m) {
9		return G * m; 
10	}
11	void method1() {
12		System.out.println("I'm here");
13	}
14 }


Ответ:

 (1) необходимо реализовать все методы A 

 (2) B должен быть унаследован от A 

 (3) method1() в B должен быть описан как public 

 (4) F() должен использовать переменную как super.G 

 (5) B должен содержать хотя бы один конструктор 

 (6) B должен содержать свою собственную переменную G 


Номер 5
При выполении программы было выдано сообщение об ошибке. Что стало ее причиной?

1  interface A {
2	double PI = 3.14;
3	double G = 9.8;
4	void method1();
5	int method2();
6  }
7  abstract class B implements A {
8	double F (double m) {
9		return G * m; 
10	}
11	void method1() {
12		System.out.println("I'm here");
13	}
14 }


Ответ:

 (1) в B не реализованы все методы A 

 (2) B реализует A 

 (3) B не содержит ни одного конструктора 

 (4) F() не использует переменную как super.G 

 (5) method1() при реализации не объявлен как public 

 (6) B не имеет доступа к переменным интерфейса A 


Номер 6
При выполении программы было выдано сообщение об ошибке. Какое изменение необходимо внести в код?

interface A {
	double PI = 3.14;
	double G = 9.8;
	void method1();
	int method2();
  }
abstract class B implements A {
	double F (double m) {
		return G * m; 
	}
	public void method1() {...	}
	int method2() { ... }
 }


Ответ:

 (1) необходимо реализовать все методы A 

 (2) B должен быть унаследован от A 

 (3) method2()должен быть при реализации объявлен как public 

 (4) F() должен использовать переменную как super.G 

 (5) method1()не должен быть при реализации объявлен как public 

 (6) B должен содержать свою собственную переменную G 


Упражнение 31:
Номер 1
Подклассами какого встроенного класса являются все типы исключений в Java?

Ответ:

 (1) Exception 

 (2) RuntimeException 

 (3) Throwable 

 (4) Error 

 (5) Exceptions 


Номер 2
Какой класс используется для обработки исключительных ситуаций, которые должны перехватываться программами пользователя?

Ответ:

 (1) Exception 

 (2) RuntimeException 

 (3) Throwable 

 (4) Error 

 (5) Exceptions 


Номер 3
Какой класс используется исполнительной системой Java, для указания ошибок, имеющих отношение к среде времени выполнения?

Ответ:

 (1) Exception 

 (2) RuntimeException 

 (3) Throwable 

 (4) Error 

 (5) Exceptions 


Номер 4
Какой набор ключевых слов используется для управления исключениями?

Ответ:

 (1) try, catch, finally 

 (2) try, catch, throw, trows 

 (3) try, catch, throw, trows, finally 

 (4) try, catch, throw, trows, finally, exception 

 (5) try, catch, throw, trows, exception 


Номер 5
Какой блок используется для выделения фрагмента кода, который необходимо защитить от исключительных ситуаций?

Ответ:

 (1) throws 

 (2) try 

 (3) catch 

 (4) exception 

 (5) finally 


Номер 6
Какое ключевое слово используется для обозначения блока обработки выброшенного исключения?

Ответ:

 (1) try 

 (2) catch 

 (3) throw 

 (4) finally 

 (5) throws 


Упражнение 32:
Номер 1
Что будет выведено на экран в результате работы следующего фрагмента программы?

int i = 4;
while(i < 5) {
try {
		if (i>=2)
			System.out.print(12 / i);
		else {
			System.out.print(6 / i++);
			throw new ArithmeticException("newEx");
		}
	}
	catch (ArithmeticException e) {
		System.out.print("0");
		break;
	}
	i--;
}


Ответ:

 (1) сообщение об ошибке 

 (2) 3460 

 (3) 346610 

 (4) 34660 

 (5) 34661 


Номер 2
int a = 8, i = -1;

int i = 4;
while(i < 5) {
try {
		if (i>=2)
			System.out.print(12 / i);
		else {
			System.out.print(6 / ++i);
			throw new ArithmeticException("newEx");
		}
	}
	catch (ArithmeticException e) {
		System.out.print("0");
		break;
	}
	i--;
}


Ответ:

 (1) сообщение об ошибке 

 (2) 34630 

 (3) 34610 

 (4) 34660 

 (5) 34661 


Номер 3
Что будет выведено на экран в результате работы следующего фрагмента программы?

int i = 4;
while(i < 5) {
	try {
		if (i>=2)
			System.out.print(12 / i);
		else
		{
			throw new ArithmeticException("newEx");
		}
	}
	catch (ArithmeticException e) {
		System.out.print(i);
		break;
	}
	i--;
}


Ответ:

 (1) сообщение об ошибке 

 (2) 34601 

 (3) 3460 

 (4) 34610 

 (5) 3461 


Номер 4
Что будет выведено на экран в результате работы следующего фрагмента программы?

int a = 9, i = -1;
while (i < 3) {
try {
		System.out.print(36 / a);				
	}
	catch (ArithmeticException e) {
		System.out.print(36 / 2);
	}
	a -=3 ;
	i++;
}


Ответ:

 (1) сообщение об ошибке 

 (2) 4612 

 (3) 18 

 (4) 461218 

 (5) 461236 / 2 


Номер 5
Что будет выведено на экран в результате работы следующего фрагмента программы?

int a = 8, i = -1;
while (i < 2) {
	try {
		System.out.print(36 / a);				
	}
	catch (ArithmeticException e) {
		System.out.print(36 / 2);
	}
	a -=2 ;
	i++;
}


Ответ:

 (1) сообщение об ошибке 

 (2) 46918 

 (3) 18 

 (4) 469 

 (5) 461236 / 2 


Номер 6
Что будет выведено на экран в результате работы следующего фрагмента программы?

int a = 9, i = -1;
while (i < 3) {
try {
		System.out.print(36 / a);				
	}
	catch (ArithmeticException e) {
		System.out.print(36 / 2);
	}
    finally {
        System.out.print(a);
    }
	a -=3 ;
	i++;
}


Ответ:

 (1) сообщение об ошибке 

 (2) 4612 

 (3) 18 

 (4) 4966123180 

 (5) 461236 / 2 


Упражнение 33:
Номер 1
Укажите, какие из приведенных утверждений относительно исключений в Java-программах верны?

Ответ:

 (1) перехват и обработку исключений осуществляют блоки catch 

 (2) перехват исключений осуществляет блок try, а обработку блок catch 

 (3) блок try может выбросить исключение 

 (4) любой код, который должен быть выполнен перед возвратом из блока try, размещается в блоке finally 

 (5) для ручного выброса исключения используется ключевое слово throws 


Номер 2
Укажите, какие из приведенных утверждений относительно исключений в Java-программах верны?

Ответ:

 (1) перехват и обработку исключений осуществляют блоки catch и finally 

 (2) перехват исключений осуществляет блок try, а обработку блок catch 

 (3) блок try может выбросить исключение 

 (4) любой код, который должен быть выполнен перед возвратом из блока try, размещается в блоке finally 

 (5) для ручного выброса исключения используется ключевое слово throw 


Номер 3
Укажите, какие из приведенных утверждений относительно исключений в Java-программах верны?

Ответ:

 (1) перехват и обработку исключений осуществляют блоки catch 

 (2) перехват исключений осуществляет блок try, а обработку блок catch 

 (3) блок try может выбросить и обработать исключение 

 (4) любое исключение, которое выброшено из метода, может быть определено с помощью ключевого слова throws 

 (5) для ручного выброса исключения используется ключевое слово throw 


Номер 4
Сколько блоков catch могут отвечать блоку try?

Ответ:

 (1) только один 

 (2) несколько 

 (3) ни одного 

 (4) не более трех 

 (5) не более пяти 


Номер 5
Каким образом обрабатываются исключения разных типов, выброшенных в одном блоке try?

Ответ:

 (1) для каждого типа исключений описывается свой блок catch 

 (2) в описании единственного блока catch через запятую указываются типы исключений 

 (3) для каждого типа исключений описывается свой блок catch и finally 

 (4) в одном блоке try не могут выбрасываться исключения разных типов 

 (5) в блоке catch можно указать общего предка для всех исключений, которые могут быть выброшены в блоке try 

 (6) ни один пункт не верен 


Номер 6
В каком случае может быть опущен блок catch для блока try?

Ответ:

 (1) только при наличии блока finally 

 (2) только, если в блоке try обрабатывается одно исключение 

 (3) только, если в блоке try обрабатываются исключения одного типа 

 (4) блок catch всегда должен присутствовать 

 (5) в любых перечисленных случаях 

 (6) ни в каких случаях 


Упражнение 34:
Номер 1
Что будет выведено на экран в результате работы следующего фрагмента программы?

int a = 35, i = 0;
while (i < 3) {
	try {
		System.out.print(42 / a);				
	}
	catch (ArithmeticException e) {
		System.out.print(42 / 2);
	}
	finally {
		System.out.print(42 / 1);
	}
	a -=7 ;
	i++;
}


Ответ:

 (1) 123 

 (2) 142142142 

 (3) 142142242 

 (4) 421422423 

 (5) будет выдано сообщение об ошибке 


Номер 2
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

int a = 12;
int i = 4;
	try {		
		while (i > 0) {
			System.out.print(a/i);
			i--;
		}
	}
	finally {
		System.out.print(i);
	}


Ответ:

 (1) 34612 

 (2) 346 

 (3) 346120 

 (4) 3460 

 (5) будет выдано сообщение об ошибке 


Номер 3
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

int a = 12;
	try {
		int i = 4;
		while (i > 0) {
			System.out.print(a/i);
			i--;
		}
	}
	finally {
		System.out.print(i);
	}


Ответ:

 (1) 34612 

 (2) 346 

 (3) 346120 

 (4) 3460 

 (5) будет выдано сообщение об ошибке 


Номер 4
Что будет выведено на экран в результате работы следующего фрагмента программы?

int a = 9, i = -1;
while (i < 3) {
try {
		System.out.print(36 / a);				
	}
	catch (ArithmeticException e) {
		System.out.print(36 / 2);
	}
	finally {
		System.out.print(36 / 1);
	}
	a -=3 ;
	i++;
}


Ответ:

 (1) 46121836 

 (2) 43663612361836 

 (3) 436636123636 

 (4) 461236 

 (5) будет выдано сообщение об ошибке 


Номер 5
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

int a = 8, i = -1;
while (i < 2) {
	try {
		System.out.print(36 / a);				
	}
	catch (ArithmeticException e) {
		System.out.print(36 / 2);
	}
	finally {
		System.out.print("1");
	}
	a -=3 ;
	i++;
}


Ответ:

 (1) 46121836 

 (2) 47181 

 (3) 4171181 

 (4) 461236 

 (5) будет выдано сообщение об ошибке 


Номер 6
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

int a = 42, i = 0;
while (i < 3) {
	try {
		System.out.print(42 / a);				
	}
	catch (ArithmeticException e) {
		System.out.print(42 / 2);
	}
	finally {
		System.out.print(42 / 1);
	}
	a -=7 ;
	i++;
}


Ответ:

 (1) 123 

 (2) 142142142 

 (3) 142142242 

 (4) 421422423 

 (5) будет выдано сообщение об ошибке 


Упражнение 35:
Номер 1
Какими начальными значениями должны быть проинициированы переменные a и i, чтобы следующий фрагмент кода выводил на экран последовательность 1123621?

while (i < 6) {
	try {
		System.out.print(42 / a);			
	}
	catch (ArithmeticException e) {
		System.out.print(42 / 2);
	}
	a -=7 ;
	i++;
}


Ответ:

 (1) int a = 42, i = -1; 

 (2) int a = 42, i = 0; 

 (3) int a = 42, i = 1; 

 (4) int a = 35, i = 0; 

 (5) int a = 35, i = -1; 


Номер 2
Какими начальными значениями должны быть проинициированы переменные a и i, чтобы следующий фрагмент кода выводил на экран последовательность 5121910?

while (i < 4) {
	try {
		System.out.print(42 % a);			
	}
	catch (ArithmeticException e) {
		System.out.print(42 % 2);
	}
	a -=7 ;
	i++;
}


Ответ:

 (1) int a = 37, i = -1; 

 (2) int a = 37, i = 0; 

 (3) int a = 37, i = 1; 

 (4) int a = 49, i = 0; 

 (5) int a = 49, i = -1; 


Номер 3
Что будет выведено на экран в результате выполнения следующего фрагмента программы?

try {
	throw new ArithmeticException();
	System.out.print("2");
}
catch (ArithmeticException e) {
	System.out.print("1");
}
finally {
	System.out.print("0");
}


Ответ:

 (1) 210 

 (2) 10 

 (3) 120 

 (4) 0 

 (5) сообщение об ошибке 


Номер 4
Какими начальными значениями должны быть проинициированы переменные a и i, чтобы следующий фрагмент кода выводил на экран последовательность 4612?

while (i < 3) {
try {
		System.out.print(36 / a);				
}
catch (ArithmeticException e) {
		System.out.print(36 / 2);
}
a -=3 ;
i++;
}


Ответ:

 (1) int a = 9, i = -1; 

 (2) int a = 9, i = 0; 

 (3) int a = 12, i = 0; 

 (4) int a = 12, i = -1; 

 (5) int a = 9, i = 1; 


Номер 5
Какими начальными значениями должны быть проинициированы переменные a и i, чтобы следующий фрагмент кода выводил на экран последовательность 469?

while (i < 3) {
	try {
		System.out.print(36 / a);				
	}
	catch (ArithmeticException e) {
		System.out.print(36 / 2);
	}
	a -=2 ;
	i++;
}


Ответ:

 (1) int a = 8, i = 0; 

 (2) int a = 9, i = 1; 

 (3) int a = 10, i = 0; 

 (4) int a = 10, i = -1; 

 (5) int a = 9, i = 0; 


Номер 6
Какими начальными значениями должны быть проинициированы переменные a и i, чтобы следующий фрагмент кода выводил на экран последовательность 111236?

while (i < 6) {
	try {
		System.out.print(42 / a);			
	}
	catch (ArithmeticException e) {
		System.out.print(42 / 2);
	}
	a -=7 ;
	i++;
}


Ответ:

 (1) int a = 42, i = -1; 

 (2) int a = 42, i = 0; 

 (3) int a = 42, i = 1; 

 (4) int a = 35, i = 0; 

 (5) int a = 35, i = 1; 


Упражнение 36:
Номер 1
Что будет выведенo на экран в результате работы следующего фрагмента программы?

int i = 0;
while (i < 4) {
	System.out.print(i);
	if (i >= 2)
		try {
			throw new ArithmeticException ("ex");	
		}
		catch (ArithmeticException e) {
			System.out.print(i);
			break;
		}
		i++;
	}


Ответ:

 (1) 01 

 (2) 012 

 (3) 0112 

 (4) 0122 

 (5) будет выдано сообщение об ошибке 


Номер 2
Что будет выведено на экран в результате работы следующего фрагмента программы?

for (int i = 0; i < 4; i++) {
if (i++ % 2 == 2){
		try {
			throw new ArithmeticException("ex");
		}
		catch (ArithmeticException e) {
			System.out.print(i);
		}
	}
	else
		System.out.print(i);
}


Ответ:

 (1) 0123 

 (2) 013 

 (3) 023 

 (4) 13 

 (5) 23 


Номер 3
Что будет выведен на экран в результате работы следующего фрагмента программы?

for (int i = 0; i < 5; i++) {
if (i % 2 == 1){
		try {
			throw new ArithmeticException("ex");
		}
		catch (ArithmeticException e) {
			System.out.print(i);
		}
	}
	else
		System.out.print(i++);
	}


Ответ:

 (1) 02 

 (2) 0123 

 (3) 01234 

 (4) 034 

 (5) 024 


Номер 4
Что будет выведен на экран в результате работы следующего фрагмента программы?

int i = 0;
while (i < 3) {
System.out.print(i);
	if (i > 1)
		try {
			throw new ArithmeticException ("ex");	
		}
		catch (ArithmeticException e) {
			System.out.print(i);
			break;
		}
	i++;
}


Ответ:

 (1) 01 

 (2) 012 

 (3) 0112 

 (4) 0122 

 (5) будет выдано сообщение об ошибке 


Номер 5
Что будет выведен на экран в результате работы следующего фрагмента программы?

int i = 0;
while (i < 3) {
System.out.print(i);
	if (i > 1)
		try {
			throw new ArithmeticException ("ex");	
		}
		catch (ArithmeticException e) {
			System.out.print(--i);
			break;
		}
	i++;
}


Ответ:

 (1) 01 

 (2) 012 

 (3) 0121 

 (4) 0122 

 (5) будет выдано сообщение об ошибке 


Номер 6
Что будет выведен на экран в результате работы следующего фрагмента программы?

int i = 0;
while (i < 5) 
{
	System.out.print(i);
	if (i > 2)
		try {
			throw new ArithmeticException ("ex");	
		}
		catch (ArithmeticException e) {
			System.out.print(i);
			break;
		}
	i++;
}


Ответ:

 (1) 01 

 (2) 012 

 (3) 0112 

 (4) 0122 

 (5) 01233 


Упражнение 37:
Номер 1
Какие типы исключений перечисляются после ключевого слова throws?

Ответ:

 (1) типы исключений, которые метод обрабатывает 

 (2) типы исключений, которые метод порождает, но не обрабатывает 

 (3) типы исключений, которые метод порождает и обрабатывает 

 (4) типы исключений, порождаемых виртуальной машиной 

 (5) вышеперечисленные утверждения неверны 


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

Ответ:

 (1) один блок try может находиться внутри другого блока try 

 (2) внутри блока try не могут находиться другие блоки try 

 (3) операторы, которые контролируются блоком try, должны быть окружены фигурными скобками 

 (4) каждый оператор try требует по крайней мере одного блока catch или finally 

 (5) внутрь try помещается блок кода для контроля над ошибками этого блока 


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

Ответ:

 (1) один блок try может находиться внутри другого блока try 

 (2) внутри блока try не могут находиться другие блоки try 

 (3) операторы, которые контролируются блоком try, должны быть окружены фигурными скобками 

 (4) допускается вариант записи блока try без фигурных скобок в случае контроля над одним оператором 

 (5) все перечисленные варианты верны 


Номер 4
В каком случае в заголовок метода добавляется ключевое слово throws?

Ответ:

 (1) если метод может породить исключение, которое он не обрабатывает 

 (2) если метод может породить исключение и обработать его 

 (3) если все исключения должны быть проигнорированы функцией, вызывающей метод 

 (4) если все исключения должны быть обработаны функцией, вызывающей метод 


Номер 5
В каком случае используется оператор throw?

Ответ:

 (1) когда необходимо пропустить потенциально опасный блок кода 

 (2) для описания собственных исключений 

 (3) когда необходимо возбудить исключение вручную 

 (4) если все исключения должны быть проигнорированы 

 (5) ни в одном из вышеперечисленных случаев 


Номер 6
Какой пункт наиболее полно описывает, что происходит в программе в случае выполнения оператора throw?

Ответ:

 (1) поток выполнения останавливается, выполняются последующие операторы, после чего просматривается ближайший включающий блок try с целью поиска оператора catch

 (2) поток выполнения останавливается, любые последующие операторы не выполняются, просматривается ближайший блок catch

 (3) поток выполнения останавливается, любые последующие операторы не выполняются, просматривается ближайший включающий блок try с целью поиска оператора catch

 (4) поток выполнения останавливается, любые последующие операторы не выполняются, просматривается самый внешний включающий блок try с целью поиска оператора catch

 (5) ни один вышеперечисленный 


Упражнение 38:
Номер 1
Следующий фрагмент программы завершился ошибкой. Какие изменения можно сделать, чтобы программа отработала без ошибок?

1	int i = 5;
2	while (i > 2 ) {
3		System.out.print(i);
4		if (i < 4) 
5			try {	throw new ArithmeticException ("ex"); }
6			finally { System.out.print(i); }
7			catch (ArithmeticException e) {
8				System.out.print(i);
9				break;
10			}
11		i--;
12	}


Ответ:

 (1) блок catch необходимо удалить 

 (2) оператор из строки 3 необходимо перенести в строку 11 

 (3) блок finally необходимо перенести под блок catch 

 (4) в строке 5 вместо throw необходимо использовать throws 

 (5) никаких изменений вносить не нужно 


Номер 2
Следующий фрагмент программы завершился ошибкой. Какие изменения необходимы, чтобы программа выводила на экран последовательность 54333?

1	int i = 5;
2	while (i > 2) {
3		System.out.print(i);
4		if (i < 4) 
5			try 	throw new ArithmeticException ("ex"); 
6			catch (ArithmeticException e) {
7				System.out.print(i);
8				break;
9			}	
10			finally { System.out.print(i); }
11		i--;
12	}


Ответ:

 (1) из строки 8 должен быть убран оператор break; 

 (2) оператор из строки 1 необходимо перенести под строку 2 

 (3) блок catch необходимо перенести под блок finally 

 (4) в строке 5 вместо throw необходимо использовать throws 

 (5) операторы, относящиеся к блоку try, должны быть заключены в {} 


Номер 3
Следующий фрагмент программы завершился ошибкой. Какие изменения необходимы, чтобы программа выводила на экран последовательность 54333?

1	int i = 5;
2	while (i > 2 ) {
3		System.out.print(i);
4		if (i < 4) 
5			try 	throw new ArithmeticException ("ex"); 
6			finally { System.out.print(i); }
7			catch (ArithmeticException e) {
8				System.out.print(i);
9				break;
10			}
11		i--;
12	}


Ответ:

 (1) из строки 9 должен быть убран оператор break; 

 (2) оператор из строки 2 необходимо перенести в строку 3 

 (3) блок finally необходимо перенести под блок catch 

 (4) в строке 5 вместо throw необходимо использовать throws 

 (5) операторы, относящиеся к блоку try, должны быть заключены в {} 


Номер 4
Следующий фрагмент программы завершился ошибкой. Какие изменения необходимы, чтобы программа выводила на экран последовательность 01222?

1 int i = 0;
2 while (i < 3) {
3	System.out.print(i);
4	if (i > 1)
5		try {
6			throw new ArithmeticException ("ex");	
7		}
8		finally {
9			System.out.print(i);
10		}
11		catch (ArithmeticException e) {
12			System.out.print(i);
13			break;
14		}
15	i++;
16 }


Ответ:

 (1) из строки 13 должен быть убран оператор break; 

 (2) оператор while из строки 2 необходимо перенести в строку 14 

 (3) блок finally необходимо перенести под блок catch 

 (4) в строке 6 вместо throw необходимо использовать throws 

 (5) никаких изменений вносить не нужно 


Номер 5
Следующий фрагмент программы завершился ошибкой. Какие изменения необходимы, чтобы программа выводила на экран последовательность 0122?

1 int i =0;
2 while (i < 3) {
3	System.out.print(i);
4	if (i > 1)
5		try {
6			throw new ArithmeticException ("ex");	
7		}
8		catch (IllegalArgumentException e) {
9			System.out.print(i);
10			break;
11		}
12	i++;
13
}


Ответ:

 (1) из строки 10 должен быть убран оператор break; 

 (2) в строке 8 тип исключения необходимо заменить на ArithmeticException 

 (3) оператор while из строки 2 необходимо перенести в строку 13 

 (4) в строке 6 вместо throw необходимо использовать throws 

 (5) никаких изменений вносить не нужно 


Номер 6
Какое изменение необходимо, чтобы программа выводила на экран последовательность 34555?

1	...
2	while (i < 6) {
3		System.out.print(i);
4		if (i > 4) 
5			try {	throw new ArithmeticException ("ex"); }
6			catch (ArithmeticException e) {
7				System.out.print(i);
8				break;
9			}
10		finally { System.out.print(i); }
11		i++;
12	}


Ответ:

 (1) int i = 4; 

 (2) int i = 5; 

 (3) int i = 3; 

 (4) int i = 2; 

 (5) никаких изменений вносить не нужно 


Упражнение 39:
Номер 1
Какие утверждения относительно блока catch верны?

Ответ:

 (1) как только блок try выбрасывает исключение, управление передается в блок catch 

 (2) содержимое блоков catch выполняется даже, если в блоке try не выброшено исключение 

 (3) в блоке catch указывается тип исключения, которое он перехватывает 

 (4) если необходимо перехватить несколько исключений из одной иерархии блоки catchдолжны идти по порядку от младшего исключения к старшему 

 (5) блок catch не обрабатывает исключения выброшенные вручную с помощью ключевого слова throw 


Номер 2
Какие утверждения относительно блока catch верны?

Ответ:

 (1) сразу после выполнения блока catch, выполнение программы продолжается со строки, следующей за полной конструкцией try-catch в случае, если в блоке catch не было выброшено новое исключение 

 (2) сразу после выполнения блока catch, выполнение программы продолжается со строки, следующей за строкой, породившей исключительную ситуацию 

 (3) блок catch может перехватывать исключения, порожденные блоками try, вложенными в отвечающий ему блок try 

 (4) блок catch не может перехватывать исключения, порожденные блоками try, вложенными в отвечающий ему блок try 

 (5) сразу после выполнения блока catch, выполнение программы продолжается со строки, следующей за полной конструкцией try-catch в любом случае 


Номер 3
Какие утверждения относительно блока catch неверны?

Ответ:

 (1) одному блоку try может отвечать только один блок catch 

 (2) в блоке catch описывается обработчик для того типа исключений, которое он перехватывает 

 (3) блок catch для верхенго в иерархии типа исключения должен идти первым 

 (4) множественные блоки catch должны быть вложены друг в друга 

 (5) все блоки catch, отвечающие вложенным try-блокам, описываются вне самого верхнего по иерархии try-блока 


Номер 4
Какие утверждения относительно блока finally верны?

Ответ:

 (1) блок finally выполниться независимо от того, было ли выброшено исключение 

 (2) finally является обязательным блоком 

 (3) finally является необязательным блоком 

 (4) код, включенный в finally выполняется после завершения блока try/catch 

 (5) код, включенный в finally выполняется после завершения блока try перед выполнением блока catch 


Номер 5
Какие утверждения относительно блока finally неверны?

Ответ:

 (1) блок finally выполниться независимо от того, было ли выброшено исключение 

 (2) finally является обязательным блоком 

 (3) finally является необязательным блоком 

 (4) код, включенный в finally выполняется после завершения блока try/catch 

 (5) код, включенный в finally выполняется после завершения блока try перед выполнением блока catch 


Номер 6
Какие утверждения относительно блока finally верны?

Ответ:

 (1) блок finally выполниться независимо от того, было ли выброшено исключение 

 (2) finally является обязательным блоком 

 (3) finally является обязательным блоком, если в блоке try порождается более одного исключения 

 (4) код, включенный в finally выполняется после завершения блока try/catch  

 (5) при наличии блока finally блок catch может отсутствовать 


Упражнение 40:
Номер 1
Каким может быть заголовок метода methods(), содержащего нижеприведенный программный код, чтобы вызывающая его программа могла корректно обрабатывать исключительные ситуации?

if (i == 0)
		throw new ClassCastException("first");
	if (i == 2)
		throw new ClassNotFoundException("second");


Ответ:

 (1) void methods () throws ClassCastException, ClassNotFoundException 

 (2) void methods () throw ClassCastException, ClassNotFoundException 

 (3) private int methods () throws Exception 

 (4) public int methods () throw ClassCastException, Exception 

 (5) void methods () throws Exception, ClassNotFoundException 


Номер 2
Каким может быть заголовок метода methods(), содержащего нижеприведенный программный код, чтобы вызывающая его программа корректно обрабатывала исключительные ситуации?

int i = 0;
while (i < 5){
	if (i == 0)
		throw new NullPointerException("first");
	if (i == 2)
		throw new NumberFormatException("second");
	i++;
}


Ответ:

 (1) void methods () throws NullPointerException 

 (2) void methods () throws NullPointerException, NumberFormatException 

 (3) private int methods ()throw NullPointerException 

 (4) public int methods () throws NullPointerException, NumberFormatException 

 (5) void methods () throws Exception 


Номер 3
Каким может быть заголовок метода methods(), содержащего нижеприведенный программный код, чтобы вызывающая его программа могла корректно обрабатывать исключительные ситуации?

int i = 4;
while (i < 5){
	if (i == 0)
		throw new NoSuchFieldException("first");
	if (i == 2)
		throw new NoSuchMethodException("second");
	if (i == 4)
		throw new IllegalAccessException("third");
	i++;
}


Ответ:

 (1) void methods () throws NoSuchFieldException, NoSuchMethodException, IllegalAccessException 

 (2) void methods () throw NoSuchFieldException, NoSuchMethodException, IllegalAccessException 

 (3) private int methods () throws NoSuchFieldException, NoSuchMethodException 

 (4) public int methods () throws ArithmeticException, NoSuchFieldException, NoSuchMethodException, IllegalAccessException 

 (5) void methods () throws IllegalAccessException 


Номер 4
Каким может быть заголовок метода methods(), содержащего нижеприведенный программный код, чтобы вызывающая его программа могла корректно обрабатывать исключительные ситуациии?

int i = 0;
while (i < 5){
	if (i == 0)
		throw new ArithmeticException("first");
	if (i == 2)
		throw new IllegalArgumentException("second");
	if (i == 4)
		throw new ArithmeticException("third");
	i++;
}


Ответ:

 (1) void method () throws ArithmeticException, IllegalArgumentException, ArithmeticException 

 (2) void method () throws ArithmeticException, IllegalArgumentException 

 (3) private int method () throws ArithmeticException, IllegalArgumentException, ArithmeticException 

 (4) public int method () throws ArithmeticException, IllegalArgumentException 

 (5) void method () throws Exception 


Номер 5
Каким может быть заголовок метода method(), содержащего нижеприведенный программный код, чтобы вызывающая его программа могла корректно обрабатывать порожденные им исключительные ситуации?

int i = 0;
while (i < 5){
	if (i == 0)
		throw new ArithmeticException("first");
	if (i == 2)
		throw new IllegalArgumentException("second");
	if (i == 4)
		throw new ArithmeticException("third");
	i++;
}


Ответ:

 (1) void method () throws ArithmeticException, IllegalArgumentException, ArithmeticException 

 (2) void method () throw ArithmeticException, IllegalArgumentException 

 (3) void method () throws ArithmeticException, IllegalArgumentException 

 (4) public int method () throw ArithmeticException, IllegalArgumentException 

 (5) void method () throws Exception 


Номер 6
Каким может быть заголовок метода methods(), содержащего нижеприведенный программный код, чтобы вызывающая его программа могла корректно обрабатывать исключительные ситуации?

	if (i == 0)
		throw new NullPointerException("first");
...
	if (i == 2)
		throw new NumberFormatException("second");
...
	if (i == 4)
		throw new ClassCastException("third");


Ответ:

 (1) void method () throws Exception 

 (2) void method () throws NullPointerException, NumberFormatException, ClassCastException 

 (3) private int method () throws NullPointerException, NumberFormatException 

 (4) public int method () throws NullPointerException, NumberFormatException, ClassCastException 

 (5) void method () throw NullPointerException, NumberFormatException, ClassCastException 




Главная / Программирование / Java: ООП и классы / Тест 1