Конструктор по умолчанию — это конструктор без параметров, который инициализирует объект класса. Если в классе не объявлен ни один конструктор, Java автоматически создаёт такой конструктор. Однако стоит определить хотя бы один конструктор с параметрами — и автоматическая генерация прекращается.
- Синтаксис:
public ИмяКласса() { } - Вызывается при создании объекта через
new ИмяКласса() - Может содержать код инициализации полей
Этот интерактивный тренажёр поможет на практике разобраться, когда конструктор создаётся автоматически, а когда его нужно писать вручную. Задания охватывают типичные ошибки и помогут закрепить понимание основ ООПОбъектно-ориентированное программирование в Java.
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Объявление конструктора без параметров
В этом задании, в рамках темы 'Конструктор по умолчанию' модуля 'Классы и Объекты' по Java, вам предоставлен фрагмент кода класса с пропусками в объявлении конструктора без параметров. Ваша задача — заполнить пропуски, указав правильный модификатор доступа и имя конструктора, которое должно совпадать с именем класса. После корректного заполнения, код должен компилироваться, позволяя создавать объекты данного класса с использованием этого конструктора. Учтите, что конструктор не имеет возвращаемого типа, и его объявление включает ключевые элементы, определяющие его доступность и идентификацию.
class MyClass {
private String data;
input1S input2S {
data = "default";
}
}2. Ошибка в имени конструктора
В представленном фрагменте кода класса допущена ошибка в объявлении конструктора по умолчанию. Конструктор должен иметь имя, в точности совпадающее с именем класса, включая регистр букв. Найдите строку с ошибкой и исправьте её, чтобы программа успешно скомпилировалась и создала объект данного класса.
public class Student { String name; int age; public student() { name = "Неизвестно"; age = 0; }}3. Собрать класс с конструктором
Из предложенных строк соберите корректный Java-класс Product с конструктором по умолчанию, который инициализирует поля name и price значениями "Unknown" и 0. Игнорируйте лишние строки, не входящие в решение.
public class Product { private String name; private int price; public Product() { name = "Unknown"; price = 0; }} public product() {4. Что выведет код при создании объекта
Проанализируйте приведённый код на 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. Термины и определения
В левой колонке приведены термины, связанные с конструкторами в Java, а в правой — их определения. Сопоставьте каждый термин с соответствующим определением. Обратите внимание, что в правой колонке нет лишних вариантов, но порядок определений перемешан.
6. Разметить части конструктора
Разметьте части конструктора по умолчанию в приведённом коде Java. Для каждого выделенного сегмента укажите, является ли он модификатором доступа, именем конструктора, списком параметров (пустым) или телом конструктора. Это задание поможет закрепить понимание структуры конструктора в Java.
{{public~|~t1}} {{MyClass~|~t2}} {{()~|~t3}} {{{}~|~t4}}7. Выбрать элементы конструктора
В этом задании вы будете работать с шаблоном класса Java, в котором конструктор содержит несколько пропусков. Ваша задача — выбрать из выпадающего списка правильные элементы для заполнения пропусков, чтобы получить корректный конструктор, инициализирующий поля объекта. Обратите внимание на модификатор доступа конструктора, использование ключевого слова this для обращения к полям класса и имена полей, которые должны совпадать с параметрами.
public class Person {
private String name;
private int age;
input1S Person(String name, int age) {
input2S.input3S = name;
this.age = age;
}
}8. Порядок выполнения при создании объекта
Проанализируйте Java-код сверху и расставьте шаги снизу в правильном порядке, чтобы получилась логика выполнения программы при создании объекта. Вам нужно восстановить последовательность шагов, которые выполняются при вызове конструктора по умолчанию, включая выделение памяти, инициализацию полей, выполнение блока инициализации и конструктора.
public class Person {
int age;
String name;
// Блок инициализации
{
age = 1;
}
// Конструктор по умолчанию
public Person() {
name = "Unknown";
}
public static void main(String[] args) {
Person p = new Person();
}
}