Конструктор по умолчанию

Тренажер по Java для пользователей с начальным уровнем подготовки.

Тренажер по Java

Конструктор по умолчанию — это конструктор без параметров, который инициализирует объект класса. Если в классе не объявлен ни один конструктор, Java автоматически создаёт такой конструктор. Однако стоит определить хотя бы один конструктор с параметрами — и автоматическая генерация прекращается.

  • Синтаксис: public ИмяКласса() { }
  • Вызывается при создании объекта через new ИмяКласса()
  • Может содержать код инициализации полей

Этот интерактивный тренажёр поможет на практике разобраться, когда конструктор создаётся автоматически, а когда его нужно писать вручную. Задания охватывают типичные ошибки и помогут закрепить понимание основ ООПОбъектно-ориентированное программирование в Java.

Список тем

1. Объявление конструктора без параметров

id: 40477_def_constr_01

В этом задании, в рамках темы 'Конструктор по умолчанию' модуля 'Классы и Объекты' по Java, вам предоставлен фрагмент кода класса с пропусками в объявлении конструктора без параметров. Ваша задача — заполнить пропуски, указав правильный модификатор доступа и имя конструктора, которое должно совпадать с именем класса. После корректного заполнения, код должен компилироваться, позволяя создавать объекты данного класса с использованием этого конструктора. Учтите, что конструктор не имеет возвращаемого типа, и его объявление включает ключевые элементы, определяющие его доступность и идентификацию.

Заполните пропуски
class MyClass {
    private String data;

    input1S input2S {
        data = "default";
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Ошибка в имени конструктора

id: 40477_def_constr_02

В представленном фрагменте кода класса допущена ошибка в объявлении конструктора по умолчанию. Конструктор должен иметь имя, в точности совпадающее с именем класса, включая регистр букв. Найдите строку с ошибкой и исправьте её, чтобы программа успешно скомпилировалась и создала объект данного класса.

Найдите ошибку и исправьте
public class Student {
    String name;
    int age;
 
    public student() {
        name = "Неизвестно";
        age = 0;
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Собрать класс с конструктором

id: 40477_def_constr_03

Из предложенных строк соберите корректный Java-класс Product с конструктором по умолчанию, который инициализирует поля name и price значениями "Unknown" и 0. Игнорируйте лишние строки, не входящие в решение.

Перетяните в правильном порядке строки из одного блока в другой
public class Product {
    private String name;
    private int price;
    public Product() {
        name = "Unknown";
        price = 0;
    }
}
    public product() {
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Что выведет код при создании объекта

id: 40477_def_constr_04

Проанализируйте приведённый код на Java. В нём определён класс с конструктором по умолчанию, который выводит сообщение и инициализирует поле. В методе main создаётся объект этого класса, после чего выводится значение поля. Внимательно изучите порядок выполнения кода и выберите правильный вывод программы из предложенных вариантов.

Выберите правильный вариант ответа
public class Person {
    private String name;
    
    public Person() {
        System.out.println("Создан объект Person");
        name = "Аноним";
    }
    
    public String getName() {
        return name;
    }
    
    public static void main(String[] args) {
        Person p = new Person();
        System.out.println("Имя: " + p.getName());
    }
}
Сообщения
Проверить
Показать подсказку

5. Термины и определения

id: 40477_def_constr_05

В левой колонке приведены термины, связанные с конструкторами в Java, а в правой — их определения. Сопоставьте каждый термин с соответствующим определением. Обратите внимание, что в правой колонке нет лишних вариантов, но порядок определений перемешан.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
конструктор по умолчанию
параметризованный конструктор
автоматическая генерация конструктора
ключевое слово new
инициализация полей
Конструктор, принимающий один или несколько параметров, позволяющий инициализировать поля объекта при его создании.
Процесс присваивания начальных значений полям объекта, который может выполняться в конструкторе, при объявлении или в блоке инициализации.
Процесс, при котором компилятор Java добавляет в класс конструктор по умолчанию, если программист не определил ни одного конструктора.
Конструктор без параметров, который автоматически создается компилятором, если в классе не объявлено ни одного конструктора.
Оператор, который выделяет память для нового объекта и вызывает конструктор для его инициализации.
Сообщения
Проверить
Показать подсказку

6. Разметить части конструктора

id: 40477_def_constr_06

Разметьте части конструктора по умолчанию в приведённом коде Java. Для каждого выделенного сегмента укажите, является ли он модификатором доступа, именем конструктора, списком параметров (пустым) или телом конструктора. Это задание поможет закрепить понимание структуры конструктора в Java.

Кликните по каждому выделенному фрагменту и выберите для него подходящий тип из списка под текстом.
{{public~|~t1}} {{MyClass~|~t2}} {{()~|~t3}} {{{}~|~t4}}
Имя конструктора
Список параметров
Тело конструктора
Модификатор доступа
Сообщения
Проверить
Показать подсказку

7. Выбрать элементы конструктора

id: 40477_def_constr_07

В этом задании вы будете работать с шаблоном класса Java, в котором конструктор содержит несколько пропусков. Ваша задача — выбрать из выпадающего списка правильные элементы для заполнения пропусков, чтобы получить корректный конструктор, инициализирующий поля объекта. Обратите внимание на модификатор доступа конструктора, использование ключевого слова this для обращения к полям класса и имена полей, которые должны совпадать с параметрами.

Нужно правильно расставить в пропуски предложенные варианты
public class Person {
    private String name;
    private int age;

    input1S Person(String name, int age) {
        input2S.input3S = name;
        this.age = age;
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

8. Порядок выполнения при создании объекта

id: 40477_def_constr_08

Проанализируйте Java-код сверху и расставьте шаги снизу в правильном порядке, чтобы получилась логика выполнения программы при создании объекта. Вам нужно восстановить последовательность шагов, которые выполняются при вызове конструктора по умолчанию, включая выделение памяти, инициализацию полей, выполнение блока инициализации и конструктора.

public class Person {
    int age;
    String name;

    // Блок инициализации
    {
        age = 1;
    }

    // Конструктор по умолчанию
    public Person() {
        name = "Unknown";
    }

    public static void main(String[] args) {
        Person p = new Person();
    }
}
Расположите элементы в логичном порядке
Выделение памяти для объекта Person
Выполнение блока инициализации: присваивание полю age значения 1
Инициализация полей age и name значениями по умолчанию (0 и null)
Возврат ссылки на созданный объект и присваивание её переменной p
Выполнение тела конструктора: присваивание полю name значения "Unknown"
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру