尝试从单独的跑步者程序中调用的.dat文件中引入成绩值和名称值。这个其他java文件中的类是为我们开始的,我们必须"实例化两个数组......"和"使用for-loop ..."
我收到错误
Incompatible types: int[] cannot be converted to int" error for "grades[i]=g;" and the corresponding String error for "names[i]=n;
思想?
public GradeBook(int[] g, String[] n, int num)
{
// **instantiate both arrays with 'num' objects
String []names=new String[num];
int[] grades=new int[num];
//**use a for-loop to assign each name and grade with the incoming values
for(int i=0;i<num;i++)
{
names[i]=n;
grades[i]=g;
}
}
答案 0 :(得分:0)
我假设你的实际代码应该是这样的:
public class GradeBook {
private String[] names;
private int[] grades;
public GradeBook(int[] g, String[] n) {
names = n;
grades = g;
}
}
只需在构造函数中指定传入的成绩和名称。您不必担心传入数组的长度,因为调用者必须处理此问题,可能是在读取.dat
文件时。此处也不需要迭代。
如果您确实需要将作为输入传递的数组的副本复制到构造函数中,那么您可以使用System.arraycopy()
:
public class GradeBook {
private String[] names;
private int[] grades;
public GradeBook(int[] g, String[] n) {
names = new String[n.length];
grades = new int[g.length];
System.arraycopy(n, 0, names, 0, n.length);
System.arraycopy(g, 0, grades, 0, g.length);
}
请注意,如果调用构造函数的代码计划在稍后修改数组,则只需要复制。