игра брюс 2048
Главная / Программирование / Программирование на Java / Тест 6

Программирование на Java - тест 6

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

Ответ:

 (1) public 

 (2) protected 

 (3) по умолчанию 

 (4) private 


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

Ответ:

 (1) public 

 (2) protected 

 (3) по умолчанию 

 (4) private 


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

Ответ:

 (1) public 

 (2) protected 

 (3) по умолчанию 

 (4) private 


Упражнение 2:
Номер 1
Для каких элементов в Java можно указать модификатор доступа?

Ответ:

 (1) для конструкторов класса 

 (2) для элементов ссылочных типов 

 (3) для пакетов 

 (4) для типов (классов и интерфейсов) объявления верхнего уровня 


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

Ответ:

 (1) private 

 (2) default 

 (3) protected 

 (4) public 


Номер 3
Какой модификатор доступа можно применить для пакета?

Ответ:

 (1) public 

 (2) default 

 (3) protected 

 (4) private 

 (5) никакой 


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

Ответ:

 (1) допустимые модификаторы доступа для класса - public или default 

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

 (3) допустимо наследовать final-класс 

 (4) допустима следующая цепочка наследования: A наследует классу B, B наследует классу C, C наследует классу A 

 (5) если не указан класс-предок класса, то это означает, что класс наследует от java.lang.Object 


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

Ответ:

 (1) final class Parent {} class FirstChild extends Parent {} class SecondChild extends FirstChild {}  

 (2) class Parent {} class FirstChild extends Parent {} final class SecondChild extends FirstChild {}  

 (3) class Parent {} final class FirstChild extends Parent {} class SecondChild extends Parent {}  

 (4) class Parent {} final class FirstChild extends Parent {} class SecondChild extends FirstChild {}  

 (5) class Parent {} final class FirstChild extends Parent {} class SecondChild extends Object {}  


Номер 3
Какие варианты кода не вызовут ошибку компиляции?

Ответ:

 (1) class Parent {} class FirstChild extends Parent {} class SecondChild implements FirstChild {}  

 (2) class Parent {} interface FirstChild {} class SecondChild implements FirstChild {}  

 (3) class Parent {} interface FirstChild extends Parent {} class SecondChild implements FirstChild {}  

 (4) class Parent {} interface FirstChild {} interface SecondChild extends FirstChild {}  

 (5) class Parent {} interface FirstChild {} interface SecondChild implements FirstChild {}  


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

Ответ:

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

 (2) объявление полей начинается с перечисления модификаторов 

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

 (4) допускается инициализация final полей в конструкторе класса 


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

Ответ:

 (1) числовое поле ссылочного типа имеет значение по умолчанию null 

 (2) идентификатор при объявлении становится составным именем поля 

 (3) идентификатор поля при объявлении становится простым именем поля 

 (4) final-поле может быть проинициализировано в конструкторе 

 (5) поля не могут иметь модификатор доступа protected 


Номер 3
Что будет выведено на экран в результате выполнения следующего фрагмента кода: 
                public class SomeClass {
                    public static void main(String args[]) {
                        SomeClass s = new SomeClass();
                        System.out.println(s.x + ", " + s.y);
                    }
                    int getX() {
                        return x;
                    }
                    int y = getX();
                    int x = 3;
                }
            

Ответ:

 (1) 3, 3 

 (2) 3, 0 

 (3) 0, 0 

 (4) сообщение об ошибке компиляции 

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


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

Ответ:

 (1) методы не могут иметь модификатор доступа default 

 (2) к методу, объявленному с модификаторами public final, нельзя обратиться из класса-наследника 

 (3) метод, объявленный с модификатором native, должен быть написан на другом языке программирования 

 (4) идентификатор метода при объявлении становится составным именем метода 

 (5) метод, объявленный с модификатором final, не может быть переопределен в классе-наследнике 


Номер 2
Укажите правильные варианты объявления метода.

Ответ:

 (1) void doSomething(int x, y); 

 (2) void doSomething(int x, int y); 

 (3) void doSomething(int x, double y); 

 (4) void doSomething(int x; double y); 

 (5) void doSomething(int x; y); 


Номер 3
Укажите варианты кода, которые не вызовут ошибки компиляции.

Ответ:

 (1) public void doSomething(int x, final int y) { x = Math.abs(y); }  

 (2) public void doSomething(int x, final int y) { y = Math.abs(y); }  

 (3) public void doSomething(int x, final int y) { x = Math.abs(y); return; }  

 (4) public void doSomething(int x, final int y) { x = Math.abs(y); return x; }  

 (5) public void doSomething(int x, final int y) { y = Math.abs(x); return; }  


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

Ответ:

 (1) конструктор может иметь модификатор доступа final 

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

 (3) если конструктор выполнился без ошибок, то объект гарантированно создается 

 (4) конструктор не может содержать return-выражение 

 (5) чтобы обратиться к конструктору родительского класса необходимо использовать ключевое слово this 


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

Ответ:

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

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

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

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

 (5) если в классе не объявлен ни один конструктор, компилятор добавляет один по умолчанию 


Номер 3
Какие варианты кода не приведут к ошибке компиляции?

Ответ:

 (1) public class SomeClass { public SomeClass(int x, int y) { this.x = x; this.y = y; super(); } int x, y; }  

 (2) public class SomeClass { public SomeClass(int x, int y) { super(); this.x = x; this.y = y; } int x, y; }  

 (3) public class SomeClass { public SomeClass(int x, int y) { super(); this.x = x; this.y = y; } public SomeClass() { super(); this(0, 0); } int x, y; }  

 (4) public class SomeClass { public SomeClass(int x, int y) { super(); this.x = x; this.y = y; } public SomeClass() { this(0, 0); } int x, y; }  

 (5) public class SomeClass { public SomeClass(int x, int y) { this(x, y); } int x, y; }  


Упражнение 7:
Номер 1
Какие утверждения относительно инициализаторов класса верны?

Ответ:

 (1) инициализаторы не имеют имен 

 (2) если в классе есть два конструктора и один из них вызывается из второго, то инициализатор будет вызван дважды 

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

 (4) при вызове конструктора сначала выполняется код инициализатора, а потом код конструктора 


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

Ответ:

 (1) инициализаторы могут быть унаследованы 

 (2) если в классе есть несколько инициализаторов, то порядок их вызова не определен 

 (3) если в классе есть два конструктора и один из них вызывается из второго, то инициализатор будет вызван только один раз 

 (4) при вызове конструктора сначала выполняется код инициализатора, а потом код конструктора 

 (5) инициализатор может иметь имя 


Номер 3
Что будет выведено на экран в результате выполнения следующего кода?
                public class SomeClass {
                    public static void main(String args[]) {
                        SomeClass2 s = new SomeClass2();
                    }
                    public SomeClass() {
                        System.out.print("1");
                    }
                    {
                        System.out.print("2");
                    }
                }
                class SomeClass2 extends SomeClass {
                    public SomeClass2() {
                        System.out.print("3");
                    }
                    {
                    System.out.print("4");
                    }
                }
            

Ответ:

 (1) 1243 

 (2) 2143 

 (3) 1234 

 (4) 2134 

 (5) 3421 


Упражнение 8:
Номер 1
Укажите правильный вариант объявления метода main - точку входа в программу на языке Java.

Ответ:

 (1) public void main(String args[]) 

 (2) public static void main(String args) 

 (3) public void main(String args) 

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

 (5) public static void main() 


Номер 2
Укажите правильные варианты объявления перегруженных методов.

Ответ:

 (1) public int doSomething(int a) {return 5;} public double doSomething() {return 5;}  

 (2) public int doSomething(int a) {return 5;} public double doSomething(int a) {return 5;}  

 (3) public int doSomething(int a) {return 5;} private double doSomething(int b) {return 5;}  

 (4) public int doSomething(int a) {return 5;} private double doSomething(int a, int b) {return 5;}  


Номер 3
Укажите результат выполения следующего кода: 
                public class SomeClass {
                    public static void main(String[] args) {
                        SomeClass s = new SomeClass("5", "6");
                        SomeClass s1 = new SomeClass("10", "12");
                        s1.doSomething(s);
                        System.out.print(s1.x + s1.y + s.x + s.y);
                    }
                    private void doSomething(SomeClass s) {
                        s.x = "5";
                        this.y = "6";
                    }
                    public SomeClass(String x, String y) {
                        this.x = x;
                        this.y = y;
                    }
                    String x, y;
                }
            

Ответ:

 (1) 5656 

 (2) 101256 

 (3) 10656 

 (4) будет выведена ошибка компиляции 

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




Главная / Программирование / Программирование на Java / Тест 6