При необходимости вызова одного конструктора из другого мы можем сделать это используя this() и передав те параметры, которые нужны вызываемому конструктору. Есть условия, которые необходимо соблюдать в таком случае, а именно:
- вызов this() должен быть первой операцией;
- второй раз вызывать в конструкторе this() запрещено.
Подробности как всегда в коде:
public class ConstructThis { String stringField; public ConstructThis() { } public ConstructThis(int a, int b) { this(a+b,"test string");//Вызов другого конструктора,подготавливающий объект System.out.println("Конструктор с двумя интами"); System.out.println("Для меня проинициализировали строку \""+stringField+"\""); } public ConstructThis(int a, String s) { stringField = s; System.out.println("Конструктор, инициализирующий строку"); } public ConstructThis(double d) { } public static void main(String[] args) { new ConstructThis(11,4); } } Вывод: Конструктор, инициализирующий строку Конструктор с двумя интами Для меня проинициализировали строку "test string"
Комментарии: