0

私は 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;
}

デフォルトのコンストラクタでは、「this(0,0,1,1);」行は 0 の種類を指定していません。私の質問は、私が書いた 3 番目のコンストラクター (「短い」型で) に行かないか、エラーを出さないのはなぜですか。オブジェクトの「x」値を出力すると、常に 0 になり、決して 4 になりません。Java はどのようにして「int」を使用することを決定するのですか?

4

1 に答える 1