вторник, 10 мая 2016 г.

Проверь себя - развлечение

Придумалась вот такая штука - по самому простому приложению типа "Hello, world !" задать много вопросов. Вот что получилось:

package edu.javacourse.hello;


public class Hello
{
    public static void main(String[] args) {
        System.out.println("Hello, world !");
    }
}
 
01. Какие из модификаторов доступа при классе позволено использовать ?
a. Только public
b. Любой из public, protected, private, <нет модификатора>
c. Любой из public, <нет модификатора>
d. Любой из public, protected, <нет модификатора>


02. Какие из модификаторов доступа при запускаемом классе позволено использовать ?
a. Только public
b. Любой из public, protected, private, <нет модификатора>
c. Любой из public, <нет модификатора>
d. Любой из public, protected, <нет модификатора>


03. Сколько классов можно обхявить в этом же файле, кроме класса Hello ?
a. Больше нельзя
b. Еще один, лишь бы не public
c. Сколько угодно, лишь бы не public


04. Зачем метод main объявлен как static ?
a. Просто так надо
b. JVM создает объект класса Hello и вызывает метод
c. JVM создает класс Hello и у него вызывает метод main
d. JVM загружает класс Hello и у него вызывает метод main


05. Какой модификатор доступа должен быть у метода main для успешной компиляции ?
a. Только public
b. Любой из public, <нет модификатора>
c. Любой из public, protected, <нет модификатора>
d. Любой из public, protected, private, <нет модификатора>


06. Какой модификатор доступа должен быть у метода main для успешного запуска программы ?
a. Только public
b. Любой из public, <нет модификатора>
c. Любой из public, protected, <нет модификатора>
d. Любой из public, protected, private, <нет модификатора>


07. Какая форма записи параметра метода main выдаст ошибку при запуске программы ?
a. String args[ ]
b. String[ ] args
c. String[5] args
d. String[ ] parameters


08. Что такое System ?
a. Объект
b. Класс
c. Интерфейс


09. Какое объыяление у поля out у System ?
a. protected final static PrintStream out = null;
b. public final static PrintStream out = null;
c. public static PrintStream out = null;
d. protected static PrintStream out = null;


10. Можно ли создать объект класса System ?
a. Нельзя, т.к. у класса нет конструктора
b. Нельзя, т.к. у класса приватный конструктор
c. Можно через конструкцию new
d. Можно через Reflection API


11. Функция println делает следующее:
a. Просто выводит информацию в скобках
b. Выводит информацию в скобках и переводит курсор на следующую строку путем печати символа '\n'
c. Выводит информацию в скобках и переводит курсор на следующую строку путем печати символа '\r'
d. Выводит информацию в скобках и переводит курсор на следующую строку путем печати символов '\n' и '\r'
e. Выводит информацию в скобках и переводит курсор на следующую строку путем печати свойства line.separator


Ответы для проверки

01 - b
Вопрос о классе вообще (с подвохом), а не запускаемом классе. В этом случае в принципе любой модификатор возможен

02 - c
Для запускаемого класса только два модификатора

03 - c
Количество классов ограничено длиной файла и только один классможет быть public. Причем его имя должно совпадать с именем файла

04 - d
JVM после загрузки класса может обратиться к статическим методам без создания объекта

05 - d
Любой - это же просто компиляция

06 - a
Только public - иначе программа на запустится

07 - c
Имя аргмента не важно - важно, чтобы его тип был массив строк. При записи массива можно ставить скобки как сразу после класса, так и после переменной. А вот указывать сразу размер массива нельзя.

08 - b
Это класс.

09 - b
Объект out всем доступен - поэтому public. И лучше посмотреть исходники

10 - d
Этот объет действительно можно создать через приватный конструктор

11 - e
Помотрите описание функции в javadoc - там это написано.

3 комментария: