2012-07-20 54 views
0

有没有办法让一个静态方法返回一个Vector对象(带有一个简单的整数x和y值作为字段),它是一个Vector乘以一个int值参数。但是,没有创建新的对象,即分配给返回值的对象被更改而不是创建了新的Vector?静态向量乘 - 没有新对象

下面的代码并没有做到这一点:

public class Vector{ 
    public int x,y; 

    public Vector(int x,int y){ 
    this.x = x; 
    this.y = y; 
    } 

    //Important code starts 

    public static Vector mult(Vector v,int a){ 
    return new Vector(v.x*a,v.y*a); 
    } 

    //Important code stops 
} 

这段代码是我之后我,但它太乱:

public static Vector mult(Vector v1,Vector v2,int a){ 
    v1.x = v2.x*a; 
    v1.y = v2.y*a; 
} 

是否有其他选择吗?

+0

双线法太乱了怎么办? – jrad 2012-07-20 20:29:00

+1

为什么不在'Vector'上创建一个方法来修改标量的x和y值?看起来你正试图绕开OOP。 – 2012-07-20 20:29:40

回答

3

为什么不加:

public void multiply(Vector otherVector, int a){ 
    x = otherVector.x * a; 
    y = otherVector.y * a; 
} 

您Vector类。

+0

您可能是指'public void' – 2012-07-20 20:33:51

+0

是的,现在更正,谢谢 – Reimeus 2012-07-20 21:17:12

+0

正是我需要的,谢谢 – lukey 2012-07-21 07:01:50

0

你的意思是?

public void mult(double a) { 
    x *= a; 
    y *= a; 
}