2012-07-20 56 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; 
}