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( ... )