JV Java  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Классы и инкапсуляция

Проверяет основу темы «Классы и инкапсуляция» через чтение кода, предсказание результата и выбор корректной конструкции. Вопросы перемешаны: встречаются трассировка, ошибка компиляции, выбор правки, граничный сценарий и оценка инженерного компромисса. Базовая версия — Java 25 LTS; если версия не названа отдельно, используются устойчивые правила, совместимые с Java 21.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант; близкие ответы различаются стадией ошибки, порядком действий или границей контракта. После завершения вы увидите общий результат, результаты по 4 тематическим шкалам и объяснения.
Вопрос 1 из 20
Что следует изменить в разделе «Классы и инкапсуляция», чтобы сохранить замысел и соблюсти контракт «Поля и методы»?
JavaПоля и методы · фрагмент для анализа
// Фрагмент на ревью
class Counter {
    private int value;
    static void reset() { value = 0; }
}
Вопрос 2 из 20
Какой диагноз для кода по теме «Поля и методы» в разделе «Классы и инкапсуляция» будет точным?
JavaПоля и методы · фрагмент для анализа
class Counter {
    private int value;
    static void reset() { value = 0; }
}
Вопрос 3 из 20
Какой контракт языка или библиотеки точнее всего описывает тему «Поля и методы» в разделе «Классы и инкапсуляция»?
Вопрос 4 из 20
Что следует изменить в разделе «Классы и инкапсуляция», чтобы сохранить замысел и соблюсти контракт «Инварианты объекта»?
JavaИнварианты объекта · фрагмент для анализа
// Фрагмент на ревью
class Account {
    private int balance;
    void setBalance(int value) { balance = value; }
    void withdraw(int amount) {
        if (amount > balance) throw new IllegalStateException();
        balance -= amount;
    }
}
Вопрос 5 из 20
Какое ограничение механизма «Инварианты объекта» нельзя упускать при работе с разделом «Классы и инкапсуляция»?
JavaИнварианты объекта · фрагмент для анализа
// Минимальный пример
class Roster {
    private final java.util.List<String> members = new java.util.ArrayList<>();
    Roster(java.util.List<String> initial) {
        if (initial.isEmpty()) throw new IllegalArgumentException();
        members.addAll(initial);
    }
    java.util.List<String> members() { return members; }
}
var roster = new Roster(java.util.List.of("a"));
roster.members().clear();
Вопрос 6 из 20
Какое ограничение механизма «Конструкторы» нельзя упускать при работе с разделом «Классы и инкапсуляция»?
Вопрос 7 из 20
Какая правка точнее всего устраняет причину проблемы по теме «Конструкторы» в разделе «Классы и инкапсуляция»?
JavaКонструкторы · фрагмент для анализа
// Фрагмент на ревью
class User {
    final String name;
    User() { this("guest"); }
    User(String name) { this.name = name; }
}
System.out.println(new User().name);
Вопрос 8 из 20
Какое правило Java действует для темы «Конструкторы» в разделе «Классы и инкапсуляция»?
Вопрос 9 из 20
На какое правило следует опираться при разборе темы «Модификаторы доступа» в разделе «Классы и инкапсуляция»?
Вопрос 10 из 20
Каков точный результат выполнения или компиляции фрагмента из раздела «Классы и инкапсуляция» по теме «Конструкторы»?
JavaКонструкторы · фрагмент для анализа
class User {
    final String name;
    User() { this("guest"); }
    User(String name) { this.name = name; }
}
System.out.println(new User().name);
Вопрос 11 из 20
Какой инженерный компромисс характерен для темы «Конструкторы» в разделе «Классы и инкапсуляция»?
Вопрос 12 из 20
Какое ограничение механизма «Модификаторы доступа» нельзя упускать при работе с разделом «Классы и инкапсуляция»?
JavaМодификаторы доступа · фрагмент для анализа
package api;
public class Base { protected int value = 7; }
// другой пакет:
Base b = new Base();
// ...
Вопрос 13 из 20
Что произойдёт с кодом по теме «Модификаторы доступа» в разделе «Классы и инкапсуляция»?
JavaМодификаторы доступа · фрагмент для анализа
package api;
public class Base { protected int value = 7; }
// другой пакет:
Base b = new Base();
System.out.println(b.value);
Вопрос 14 из 20
Какое замечание о сопровождении или производительности темы «Инварианты объекта» в разделе «Классы и инкапсуляция» справедливо?
Вопрос 15 из 20
Что следует изменить в разделе «Классы и инкапсуляция», чтобы сохранить замысел и соблюсти контракт «Модификаторы доступа»?
JavaМодификаторы доступа · фрагмент для анализа
// Фрагмент на ревью
package api;
public class Base { protected int value = 7; }
// другой пакет:
Base b = new Base();
System.out.println(b.value);
Вопрос 16 из 20
Что важно учитывать при применении механизма «Поля и методы» из раздела «Классы и инкапсуляция» в рабочем проекте?
Вопрос 17 из 20
Какое утверждение о механизме «Инварианты объекта» верно в контексте раздела «Классы и инкапсуляция»?
Вопрос 18 из 20
В каком дополнительном сценарии вывод о теме «Поля и методы» в разделе «Классы и инкапсуляция» может оказаться неверным?
Вопрос 19 из 20
Как точнее оценить пользу и цену решения по теме «Модификаторы доступа» в разделе «Классы и инкапсуляция»?
Вопрос 20 из 20
Какой дефект инварианта есть у показанного класса Account?
JavaИнварианты объекта · фрагмент для анализа
class Account {
    private int balance;
    void setBalance(int value) { balance = value; }
    void withdraw(int amount) {
        if (amount > balance) throw new IllegalStateException();
        balance -= amount;
    }
}

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу