0

タイプ POINT (オブジェクト) の 2 つの属性を持つ LINE クラスがあります。

public class LINE {
private Point p1,p2;
}

このステートメントを作成すると、エイリアシングが発生しますか?

public void setP1(Point p1)
{
    this.p1=p1;
}

または、次のように新しいオブジェクトを作成する必要がありますか?

public void setP1(Point p1)
{
this.p1=new Object(p1);
}

事前に感謝します。

4

1 に答える 1

0

はい、エイリアシングが発生します。

私の推測では、 new をインスタンス化するよりも、オブジェクトのコピーを作成しようとしていると思いますPoint

そうは言っても、実際にオブジェクトのコピーを作成する必要がない場合は、最初のコピーで十分です

したがって、次のように呼び出すと

Line line = new Line()
line.setP1(new Point(/*params*/))

それはまったく問題ありません。

于 2013-01-02T21:06:59.063 に答える