【发布时间】:2014-05-19 13:08:18
【问题描述】:
这里是初学者,找不到我的问题的答案。首先,这是代码。
public class Worker{
String name = "default";
String surname = "default";
int age = 0;
public Worker(){ }
public Worker(String inName, String inSurname, int inAge){
name = inName;
surname = inSurname;
age = inAge;
}
public Worker(Worker worker){
name = worker.name;
surname = worker.surname;
age = worker.age;
}
}
还有:
public class Company{
public static void main(String[] args){
int n = 2;
Worker[] workers = new Worker[n];
String[] names = {"John", "Kate"};
String[] surnames = {"Doe", "McDonald"};
int[] ages = {25, 31};
for(int i=0; i<n; i++){
workers[i] = new Worker(names[i], surnames[i], ages[i]);
}
for(Worker p: workers){
System.out.printf("%s, %s, %d \n",p.name,p.surname,p.age);
}
}
}
我想要做的是创建 3 个“工人”对象(假设用户选择了“n”值),同时只有两组数据(姓名、姓氏和年龄)。如果“n”值大于 names.length(),我希望使用构造函数“public Worker(){}”创建新工作者。
我该怎么做?我尝试了几个想法,但所有想法都给了我 ArrayIndexOutOfBoundsException。
【问题讨论】:
-
您的代码运行良好。
-
你在哪一行得到错误?
-
它工作正常,但如果我将“n”值更改为“3”,它会给我 ArrayIndexOutOfBounds 异常。
标签: java constructor indexing indexoutofboundsexception