Назад к вопросам
Junior
69
questionbank

В чем разница между конструктором по умолчанию, конструктором копирования и конструктором с параметрами?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

  • Конструктор по умолчанию: Создается компилятором автоматически, если в классе нет других конструкторов. Не принимает параметров и инициализирует поля значениями по умолчанию (0 для числовых типов, false для boolean, null для объектов).

  • Конструктор копирования: Создает новый объект, который является копией существующего объекта того же класса. Принимает один аргумент — ссылку на объект, который нужно скопировать.

  • Конструктор с параметрами: Позволяет инициализировать поля объекта при его создании, передавая значения в виде аргументов. Может иметь любое количество параметров различных типов.

// Пример: класс Car
class Car {
    private String brand;
    private int year;

    // Конструктор по умолчанию (неявный, но можно объявить явно)
    public Car() {
        // Инициализация по умолчанию
        this.brand = null;
        this.year = 0;
    }

    // Конструктор с параметрами
    public Car(String brand, int year) {
        this.brand = brand;
        this.year = year;
    }

    // Конструктор копирования
    public Car(Car otherCar) {
        this.brand = otherCar.brand;
        this.year = otherCar.year;
    }

    // Геттеры, сеттеры и другие методы
    public String getBrand() {
        return brand;
    }

    public int getYear() {
        return year;
    }
}