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

Тренажер по 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();
    }
}
Расположите элементы в логичном порядке
Возврат ссылки на созданный объект и присваивание её переменной p
Выполнение блока инициализации: присваивание полю age значения 1
Выделение памяти для объекта Person
Инициализация полей age и name значениями по умолчанию (0 и null)
Выполнение тела конструктора: присваивание полю name значения "Unknown"
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру