很抱歉,如果这是愚蠢的,但我是java新手。
我试图将值赋给由构造函数定义但引用构造函数之外的值的变量,我有点困惑。
我遇到的代码片段是:
private int x;
private int y;
public Finish(int i, int j) {
this.x = i;
this.y = j;
}
public int getY() {
return this.y;
}
public int getX() {
return this.x;
所以基本上在主文件中创建一个新对象'Finish',其初始坐标(即int i和int j)。然后我需要将这些坐标添加到getY和getX方法中,这样我就可以将对象移向它们。
问题是当我在get方法中引用x或y时,它返回到变量的初始声明,因此值为零,而不是查看构造函数中赋给它的值。任何想法如何在get方法中使用int i和int j?感谢。
编辑:
this.finish = new Finish(this.canvasWidth / 2, Math.abs(rng.nextInt()) % this.canvasHeight);
这是主文件中的代码,它创建了finish对象并指定了它的初始位置(this.canvasWidth / 2是变量i和Math.abs(rng.nextInt())%this.canvasHeight是可变的j)
因此,在finish.java中我告诉它基于int i和int j的位置,但是getX和getY方法仍然保持为0.
答案 0 :(得分:0)
您尝试做的事情是不可行的,因为只要程序退出构造函数,i
和j
就超出了范围。
这里的代码是正确的,以下是如何使用它的示例:
foo = new Finish(100, 200)
System.out.println(foo.getX()) #prints 100
System.out.println(foo.getY()) #prints 200
但我建议您将i
和j
更改为x
和y
,以便变量名称对最终用户更直观。< / p>