2012-03-06 3 views
0

У меня есть массив (moduleList) как одна из моих четырех переменных частного экземпляра в моем классе CourseYear. Я хочу иметь возможность добавлять имена объектов массива в другом классе. CourseYearTestApplication. до сих пор для класса CourseYear у меня есть:Array как переменная экземпляра

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); 
    } 
} 
+2

Почему вы используете массив? Было бы гораздо разумнее использовать «Список ». Даже несмотря на это, неясно, что вы подразумеваете под «Я не уверен, как вводить значения массива (строки) в тесте« –

+0

Я использую массив, потому что они являются ориентирами в задании. Я хочу поместить 6 строк в массив из TestAplication. например, 6 предметов («математика» «английский ....) Мне жаль, что мне трудно объяснить. – joe

+1

Вы не хотите помещать их в массив. Вы хотите поместить их в * модуль * объекты (по одному на объект, предположительно). –

ответ

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); 
    } 


} 
+0

О, это домашнее задание, и они требуют, чтобы вы использовали массив ... пренебрегаете. –

0

Какие струны вы хотите установить? если это год обучения и т. д., то courseYear1.setTutor("John"); в порядке. Но если вы имеете в виду настройку объектов в массиве, вы должны использовать метод доступа, поэтому courseYear1.getModule(1).setSomething("this String");

Если это что-то еще, вам, возможно, понадобится быть немного яснее.

EDIT: от Вашего комментария звучит как ваши ищем что-то вроде:

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

0

Переходя в new Module() только один модуль, а не массив модулей. Я бы рекомендовал создать экземпляр Module[length] вне вызова метода, а затем передать в этом массиве Module.

Смежные вопросы