数组作为实例变量

时间:2012-03-06 20:47:32

标签: java arrays methods

我有一个数组(moduleList)作为我的类 CourseYear 中的四个私有实例变量之一。我希望能够在不同的类 CourseYearTestApplication 中添加数组对象的名称。到目前为止,我有 CourseYear 课程:

public class CourseYear
{
    private String courseName;
    private int year;
    private String tutorName;
    private Module [] moduleList;

    public CourseYear()
    {
        courseName = "Default";
        year = 0;
        tutorName = "Joe Bloggs";
        moduleList = new Module[6];
    }

    public void setCourseName(String newCourseName)
    {
        courseName = newCourseName;
    }

    public void setYear(int newYear)
    {
        year = newYear;
    }

    public void setTutorName(String newTutorName)
    {
        tutorName = newTutorName;
    }

    public String getCourseName()
    {
        return courseName;
    }

    public int getYear()
    {
        return year;
    }

    public String getTutorName()
    {
        return tutorName;
    }
}

我知道这是我的添加方法,但我不确定如何在测试中输入我的数组值(字符串)

public void addModule(Module module1, int index)
{
    moduleList[index] = module1;
}


public Module getModule(int index)
{
    return moduleList[index];
}

到目前为止,这是 CourseYearTestApplication

public class CourseYearTestApplication
{
    public static void main (String [] args)
    {
        CourseYear courseYear1 = new CourseYear();

        courseYear1.addModule(new Module(), 0);
        courseYear1.addModule(new Module(), 1);
        courseYear1.addModule(new Module(), 2);
        courseYear1.addModule(new Module(), 3);
        courseYear1.addModule(new Module(), 4);
        courseYear1.addModule(new Module(), 5);
    }
}

3 个答案:

答案 0 :(得分:2)

为什么不使用ArrayList?这将允许您根据需要增大/缩小数组,并将很好地遵循您的API要求:

public class CourseYear {
    private String courseName;
    private int year;
    private String tutorName;
    private List<Module> moduleList = new ArrayList<Module>;
    ....

    public void addModule(Module module1, int index) {
        moduleList.add(module1);
    }


    public Module getModule(int index) {
        return moduleList.at(index);
    }


}

答案 1 :(得分:0)

您想要设置哪些字符串?如果它是课程年度等,那么courseYear1.setTutor("John");就可以了。但是,如果您的意思是在数组中设置内容,则应使用访问方法,因此courseYear1.getModule(1).setSomething("this String");

如果它是别的东西你可能需要更清楚一点。

编辑:从您的评论中听起来像是在寻找类似的内容:

courseYear1.getModule(1).setModuleName("Maths");

答案 2 :(得分:0)

传入new Module()只是一个模块,而不是模块数组。我建议在方法调用之外实例化Module[length],然后传入Module的数组。