Как вызвать один конструктор из другого?

При необходимости вызова одного конструктора из другого мы можем сделать это используя this() и передав те параметры, которые нужны вызываемому конструктору. Есть условия, которые необходимо соблюдать в таком случае, а именно:

  1. вызов this() должен быть первой операцией;
  2. второй раз вызывать в конструкторе 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"

 

Понравилась статья? Поделиться с друзьями:

Комментарии:

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: