将类添加到数组的方法只会将类添加到第一个位置

Ell*_*678 0 java

这是方法

public void addModuleToStudent(Module aModule)
 {
    int position = 0; 
    if(position > 3)
    {
        System.out.println("Error: Student already has four modules\n");
    }
    else
    {
        moduleArray[position] = aModule;
        position++;
    }
 }
Run Code Online (Sandbox Code Playgroud)

问题是位置似乎没有增加位置变量,因为当我添加模块类时,它占据数组中的第一个位置,当我添加另一个而不是被添加到第二个位置时,它会覆盖第一个位置.

Jon*_*eet 7

是的,position是一个局部变量.每次调用时addModuleToStudent,都会得到一个新变量,初始化为0.

听起来你想让它成为一个实例变量,以便它在方法调用之间持续存在.

更好的是,不要使用数组 - 使用ArrayList<Module>替代,然后你可以使用:

public void addModuleToStudent(Module module)
{
    if (modules.size() > 3)
    {
        throw new SomeAppropriateException("Cannot have more than 4 modules");
    }
    modules.add(module);
}
Run Code Online (Sandbox Code Playgroud)