Java 我收到了我认为是数组的语法错误,不知道它想要修复什么
必须创建一个使用超级英雄类的程序,超级英雄类使用名称类和日期类。在主代码中,我在为英雄对象分配属性时收到一个错误Java 我收到了我认为是数组的语法错误,不知道它想要修复什么,java,Java,必须创建一个使用超级英雄类的程序,超级英雄类使用名称类和日期类。在主代码中,我在为英雄对象分配属性时收到一个错误 public class JavaProgram{ public static void main (String [] args){ Date [] birthDay = new Date [3]; Name [] name = new Name [3]; SuperHero [] hero = new SuperHero [
public class JavaProgram{
public static void main (String [] args){
Date [] birthDay = new Date [3];
Name [] name = new Name [3];
SuperHero [] hero = new SuperHero [3];
for (int i = 0; i < hero.length; i++){
birthDay[i] = new Date();
name[i] = new Name();
hero[i] = new SuperHero();
}
birthDay[1].setDate(10,10,87);
birthDay[2].setDate(5,10,99);
birthDay[3].setDate(3,12,79);
name[1].setName("Michael");
name[2].setName("Scott");
name[3].setName("Jim");
SuperHero hero [1] = new SuperHero(name[1], "Suit", "Cape", "Flying", birthDay[1] );
SuperHero hero [2] = new SuperHero(name[2], "Suit", "No Cape", "Flying", birthDay[2] );
SuperHero hero [3] = new SuperHero(name[3], "Suit", "Cape", "Flying", birthDay[3] );
}
}
尝试编译主代码时发生此错误:
JavaProgram.java:20: error: ']' expected
SuperHero hero [1] = new SuperHero(name[1], "Suit", "Cape", "Flying", birthDay[1] );
^
JavaProgram.java:21: error: ']' expected
SuperHero hero [2] = new SuperHero(name[2], "Suit", "No Cape", "Flying", birthDay[2] );
^
JavaProgram.java:22: error: ']' expected
SuperHero hero [3] = new SuperHero(name[3], "Suit", "Cape", "Flying", birthDay[3] );
^
3 errors
这里有两件事是错误的/有问题的: 1:你没有正确访问英雄阵列。访问英雄阵列的第n个元素的方式如下:
hero[n]
要为英雄阵列中的第n个位置指定值,需要
hero[n] = new SuperHero( ... )
2:在Java中,数组是0索引的。这意味着大小为3的数组的索引为0、1和2
hero[3]
和name[3]
都会导致IndexOutOfBoundsException。在hero
之前不需要SuperHero
。此外,数组索引从0开始,而不是从1开始。
JavaProgram.java:20: error: ']' expected
SuperHero hero [1] = new SuperHero(name[1], "Suit", "Cape", "Flying", birthDay[1] );
^
JavaProgram.java:21: error: ']' expected
SuperHero hero [2] = new SuperHero(name[2], "Suit", "No Cape", "Flying", birthDay[2] );
^
JavaProgram.java:22: error: ']' expected
SuperHero hero [3] = new SuperHero(name[3], "Suit", "Cape", "Flying", birthDay[3] );
^
3 errors
hero[n]
hero[n] = new SuperHero( ... )