Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
09 Фев 2024
2 мин
587

Вызов одного конструктора из другого в Java

В Java порой возникает необходимость вызвать один конструктор из другого. Это может быть полезно, когда в классе имеется несколько конструкторов, которые

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

Рассмотрим простой пример. Представим, что есть класс Car, который имеет два конструктора. Один конструктор принимает два параметра – марку автомобиля и его цвет, а другой – только марку. В обоих случаях нам нужно инициализировать марку, но цвет нужно инициализировать только в первом случае.

public class Car {
    private String brand;
    private String color;

    public Car(String brand, String color) {
        this.brand = brand;
        this.color = color;
    }

    public Car(String brand) {
        this.brand = brand;
        this.color = "Black";
    }
}

В приведенном выше коде видно, что инициализация марки дублируется в обоих конструкторах. Чтобы избежать дублирования кода, можно вызвать один конструктор из другого с помощью ключевого слова this.

public class Car {
    private String brand;
    private String color;

    public Car(String brand, String color) {
        this.brand = brand;
        this.color = color;
    }

    public Car(String brand) {
        this(brand, "Black");
    }
}

В этом примере конструктор, который принимает только один аргумент, вызывает другой конструктор с помощью this(brand, "Black"). В результате, инициализация марки теперь выполняется только в одном месте.

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

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

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий