我有一个方法,它接受4个浮点数并修改该值。现在我想将父类的浮点数设置为方法所接受的值。一些代码:
public void influence(float x, float y, float w, float h){
x += 5; y += 5; w += 5; h += 5;
}
现在将从父类调用,如下所示:
float x = 5, y = 5, w = 5, h = 5;
influence(x, y, w, h);
我想将父级中的浮点数设置为修改后的方法。我知道我可以返回一个float[]
,然后手动将父类的浮点数设置为该数组,但有更好的方法吗?我也可以使用像Rect
这样的类,但这就像一个数组。
答案 0 :(得分:2)
Java无法传递对基元的引用。但是,在您的情况下,最好还是避免它:看起来四个变量彼此相关。
当几个变量相关时,它们应该是单个对象的实例变量。您的对象可能看起来像一个矩形框,其原点为(x, y)
,高度h
和宽度w
。为它创建一个类,让方法更改该类,或返回一个新实例:
class Rect {
private final float x, y, w, h;
public float getX() { return x; }
public float getY() { return y; }
public float getW() { return w; }
public float getH() { return h; }
public Rect(float x, float y, float w, float h) {
this.x = x;
this.y = y;
this.w = w;
this.h = h;
}
}
然后你可以编写一个返回新Rect
public Rect influence(Rect inputRect) {
...
}
或使Rect
变为可变,并让influence
修改其值。
答案 1 :(得分:1)
你不能在Java中更改primitives,因为Java中的所有内容都是passed by value - 但您可以将值存储在数组中并传递它:
public void influence(float[] arr){
for (int i=0; i<arr.length; i++){
arr[i] += 5;
}
}