Я читал учебник по Java и у меня возник вопрос о явном вызове конструктора. Прежде всего, вот поля и конструкторы, описанные в руководстве, а также еще один конструктор, который я добавил:
private int x, y;
private int width, height;
public Rectangle() {
this(0, 0, 1, 1);
}
public Rectangle(int width, int height) {
this(0, 0, width, height);
}
public Rectangle(short x, short y, int width, int height) {
this.x = (int) x+4;
this.y = (int) y+4;
this.width = width;
this.height = height;
}
public Rectangle(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
В конструкторе по умолчанию «это (0,0,1,1);» строка не указывает типы нулей. Мой вопрос в том, почему он не переходит к третьему конструктору, который я написал (с «короткими» типами), или выдает ошибки. Когда я распечатываю значение «x» объекта, я всегда получаю 0 и никогда не получаю 4. Как Java решает использовать «int»?