Конструктор — это специальный блок кода, который запускается при создании объекта. Параметризованный конструктор позволяет сразу при создании объекта задать его начальные характеристики (поля).
Вместо того чтобы создавать объект, а потом по очереди заполнять его поля, мы передаем значения прямо в круглых скобках: new Car("Red", 2023);. Внутри класса конструктор принимает эти аргументы и присваивает их полям, часто используя ключевое слово this для устранения конфликта имен.
Здесь вы найдете практические задачи на создание и использование конструкторов с параметрами. Это ключевой навык для быстрой и надежной инициализации объектов в 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. Объявление конструктора
В этом задании вы работаете с классом Book, который имеет поля title (название) и author (автор). В коде пропущены объявления параметров в конструкторе. Ваша задача — вписать типы и имена переменных в скобки конструктора, чтобы он корректно инициализировал поля объекта при создании экземпляра класса. Обратите внимание на тело конструктора, где параметры используются для присваивания значений полям через ключевое слово this. Это упражнение направлено на понимание синтаксиса объявления параметризованных конструкторов в Java и связи параметров с полями класса.
public class Book {
private String title;
private String author;
public Book(input1S, input2S) {
this.title = title;
this.author = author;
}
}2. Конструктор и вызов
В левой колонке приведены примеры создания объектов класса Person с помощью оператора new и различных конструкторов. В правой колонке представлены объявления конструкторов с разными сигнатурами. Сопоставьте каждый вызов конструктора (создание объекта) с подходящим объявлением конструктора. Обратите внимание на количество и типы передаваемых аргументов.
new Person();new Person("Анна");new Person(25);new Person("Иван", 30);new Person(30, "Иван");Person()Person(String name, int age)Person(int age)Person(int age, String name)Person(String name)3. Использование this
В данном задании вам предстоит заполнить пропуски в коде Java, чтобы корректно инициализировать поля класса через параметризованный конструктор с использованием ключевого слова this. Код демонстрирует класс Person с двумя полями: name и age. В конструкторе необходимо присвоить значения параметров соответствующим полям объекта, избегая конфликта имён между параметрами и полями класса. Выберите из предложенных вариантов правильные выражения для каждого пропуска, чтобы код работал корректно и выводил ожидаемое сообщение.
public class Person {
private String name;
private int age;
public Person(String name, int age) {
// Присваиваем параметры полям класса
input1S
input2S
System.out.println("Создан объект Person: " + this.name + ", " + this.age);
}
}4. Сборка класса с конструктором
Из предложенных строк соберите корректную Java-программу, которая определяет класс Person с параметризованным конструктором, создает объект этого класса и выводит информацию о нем. Некоторые строки лишние и не должны входить в решение. Обратите внимание на правильный порядок: объявление класса, объявление полей, конструктор с параметрами, метод main с созданием объекта и выводом.
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public static void main(String[] args) { Person person = new Person("Alice", 30); System.out.println(person.name + " is " + person.age + " years old."); }} public Person() {} System.out.println("Hello");5. Аргументы или Параметры?
В данном задании представлен фрагмент кода на Java, содержащий объявление параметризованного конструктора и его вызов. Вам необходимо выделить фактические значения (аргументы), передаваемые в конструктор при создании объекта с помощью оператора new. Для этого кликните на каждый выделенный сегмент и выберите из списка тип 'Аргумент конструктора'. Обратите внимание, что аргументы — это конкретные значения, которые передаются в конструктор при его вызове.
public class Book {
private String title;
private int pages;
public Book(String bookTitle, int bookPages) {
title = bookTitle;
pages = bookPages;
}
public static void main(String[] args) {
Book myBook = new Book({{"Java Basics"~|~t1}}, {{300~|~t2}});
}
}6. Неверный тип данных
В данном фрагменте Java-кода есть ошибка, связанная с использованием параметризованного конструктора. При создании объекта класса Person в аргументы конструктора передаётся значение неверного типа данных. Конструктор ожидает определённые типы параметров, но в вызове оператора new один из аргументов имеет тип, который не соответствует объявлению конструктора. Исправьте ошибку, изменив соответствующий аргумент, чтобы программа могла успешно скомпилироваться и выполниться.
public class Main { public static void main(String[] args) { Person person = new Person("Анна", "25"); person.displayInfo(); }}7. Состояние после создания
Проанализируйте приведённый код на Java, в котором создаётся объект класса Book с использованием параметризованного конструктора. Определите, какое значение будет содержать поле title этого объекта сразу после его создания. Обратите внимание на то, как конструктор обрабатывает переданные аргументы.
class Book {
String title;
int pages;
Book(String t, int p) {
title = t.toUpperCase();
pages = p;
}
}
public class Main {
public static void main(String[] args) {
Book myBook = new Book("Java Basics", 350);
}
}