ねえ、私は実際には、Java - Cloneableを実装するか、コンストラクタを追加しますか?
public class Vector {
private double X;
private double Y;
public Vector(double x, double y) {
this.X = x;
this.Y = y;
}
public void setX(double x) {
this.X = x;
}
public double getX(double x) {
return this.X;
}
public void setY(double y) {
this.Y = y;
}
public double getY(double y) {
return this.Y;
}
}
が、私はそのような指定の要因により、このベクトル*を返す乗算()メソッドを追加したい、ジャワのカスタムVectorクラスで働いている
public void multiply(double factor) {
this.X *= factor;
this.Y *= factor;
}
事は、私はベクトルを必要とする機能を使用する場合、私は
doSomething(ancientVector.multiply(-1D));
のようにそれを使用したいのですが、ですが、argは、私はに送信するので、JVMが成立していません機能は、void
...
Cloneable
を実装するか、別のコンストラクタを作成すると、それをきれいにするにはどうすればいいですかmultiply
?
doSomething(ancientVector.multiply(-1D));
OR
public Vector(Vector previous, double mFactor) {
this.X *= previous.getX() * mFactor;
this.Y *= previous.getY() * mFactor;
}
なぜ2回の呼び出しでそれをしないのですか? '' 'myVector.multiply(-1D))' ''それから '' 'doSomething(myVector);' ''。 – Freiheit
私の質問はなぜ 'Vector'が全く変更可能なのかということでしょう。なぜ 'setX'と' setY'メソッドがあるのでしょうか?そのようなものが変化しているような場合は、効果的に新しいベクターを作成しているようです。 – StriplingWarrior