Java 数组和方法的问题
当我在方法中为数组赋值时,当我尝试在其他方法中使用它们时,它们将变为0 我对java编程也不是很有经验 这是我的密码:Java 数组和方法的问题,java,Java,当我在方法中为数组赋值时,当我尝试在其他方法中使用它们时,它们将变为0 我对java编程也不是很有经验 这是我的密码: public int[] pVectorCoinOne = new int[2]; public int[] pVectorCoinTwo = new int[2]; public int[] pVectorCoinThree = new int[2]; public int[] pVectorCoinFour = new int[2];
public int[] pVectorCoinOne = new int[2];
public int[] pVectorCoinTwo = new int[2];
public int[] pVectorCoinThree = new int[2];
public int[] pVectorCoinFour = new int[2];
public int[] pVectorCoinFive = new int[2];
public int[] pVectorCoinSix = new int[2];
public void setPositionVectors(){
int[] pVectorCoinOne = {lblCoinImage1.getX(), lblCoinImage1.getY()};
int[] pVectorCoinTwo = {lblCoinImage2.getX(), lblCoinImage2.getY()};
int[] pVectorCoinThree = {lblCoinImage3.getX(), lblCoinImage3.getY()};
int[] pVectorCoinFour = {lblCoinImage4.getX(), lblCoinImage4.getY()};
int[] pVectorCoinFive = {lblCoinImage5.getX(), lblCoinImage5.getY()};
int[] pVectorCoinSix = {lblCoinImage6.getX(), lblCoinImage6.getY()};
}
public void printAllToOutput(){
setPositionVectors();
System.out.println(Arrays.toString(pVectorCoinOne));
System.out.println(Arrays.toString(pVectorCoinTwo));
System.out.println(Arrays.toString(pVectorCoinThree));
System.out.println(Arrays.toString(pVectorCoinFour));
System.out.println(Arrays.toString(pVectorCoinFive));
System.out.println(Arrays.toString(pVectorCoinSix));
}
修正如下:
public void setPositionVectors(){
pVectorCoinOne[0] = lblCoinImage1.getX(); //example
}
这一切都是关于范围-局部与全局。不能像这样直接设置数组。在java中,只能在初始化期间将常量设置为数组
比如:
当你写作时
public void setPositionVectors(){
int[] pVectorCoinOne = {lblCoinImage1.getX(), lblCoinImage1.getY()};
int[] pVectorCoinTwo = {lblCoinImage2.getX(), lblCoinImage2.getY()};
int[] pVectorCoinThree = {lblCoinImage3.getX(), lblCoinImage3.getY()};
int[] pVectorCoinFour = {lblCoinImage4.getX(), lblCoinImage4.getY()};
int[] pVectorCoinFive = {lblCoinImage5.getX(), lblCoinImage5.getY()};
int[] pVectorCoinSix = {lblCoinImage6.getX(), lblCoinImage6.getY()};
}
该方法在其内部使用相同的名称初始化新的局部变量,而不是调用上面声明的局部变量。因此,当方法结束时,变量将消失,并且不会发生任何更改。这是因为您没有引用现有的字段数组。您正在创建实际包含值的新的本地数组。要正确地为数组赋值,必须执行
pVectorCoinOne[0]=lblCoinImage1.getX();pVectorCoinOne[1]=lblCoinImage1.getY()代码>在方法中。这修复了它。谢谢你把它修好了。非常感谢。
public void setPositionVectors(){
int[] pVectorCoinOne = {lblCoinImage1.getX(), lblCoinImage1.getY()};
int[] pVectorCoinTwo = {lblCoinImage2.getX(), lblCoinImage2.getY()};
int[] pVectorCoinThree = {lblCoinImage3.getX(), lblCoinImage3.getY()};
int[] pVectorCoinFour = {lblCoinImage4.getX(), lblCoinImage4.getY()};
int[] pVectorCoinFive = {lblCoinImage5.getX(), lblCoinImage5.getY()};
int[] pVectorCoinSix = {lblCoinImage6.getX(), lblCoinImage6.getY()};
}