如何在一个长度是用户输入长度的对象中初始化一个数组?我想通过用户输入设置bat数量,并使数组长度,然后在basesAchieved
数组内,我想根据用户输入(1-4)设置一个数字,代表实现的基数。
// set up a Batter
public class Batter
{
private String batterName;
private int numberOfBats;
private int[] basesAchieved;
// fill fields with empty data, how is this done with an array??
public Batter()
{
this("", 0,0);
}
//
public Batter(String batterName, int numberOfBats, int[] basesAchieved)
{
this.batterName = batterName;
this.numberOfBats = numberOfBats;
this.basesAchieved = basesAchieved;
}
public void setBatterName(String batterName)
{
this.batterName = batterName;
}
public String getBatterName()
{
return batterName;
}
public void setNumberOfBats(int numberOfBats)
{
this.numberOfBats = numberOfBats;
}
public int getNumberOfBats()
{
return numberOfBats;
}
// want to set an array to get a number (1-4) for each number of @ bats
// (numberOfBats).
public void setBasesAchieved(int[] basesAchieved)
{
this.basesAchieved = ;
}
public int getBasesAchieved()
{
return basesAchieved;
}
}
答案 0 :(得分:0)
在setter
方法中,您应该指定this.basesAchieved = basesAchieved;
。如果你想用一个长度初始化basesAchieved,那么在你初始化int[] basesAchieved = new int[yourlength]
类的类中只需:Batter
,然后调用这个类的setter
方法
答案 1 :(得分:0)
在您尝试使用int数组的类中有一些错误。
public Batter()
{
this("", 0, new int[0]);
}
// skipped...
public void setBasesAchieved(int[] basesAchieved)
{
this.basesAchieved = basesAchieved;
}
public int[] getBasesAchieved()
{
return basesAchieved;
}
此问题解释了如何获取用户输入How can I get the user input in Java?
最简单的方法之一是使用Scanner对象,如下所示:
Scanner reader = new Scanner(System.in); // Reading from System.in
System.out.println("Enter a number: ");
int n = reader.nextInt(); // Scans the next token of the input as an int.
您可以使用此方法读取numberOfBats
的数量,并使用正确的数组长度创建对象。然后,您可以不断询问用户输入并将其放入basesAchieved
数组中。或者您可以先向读者询问所有输入,然后创建对象。