所以這是一個相當複雜的問題,但對我來說,我將試着解釋盡我所能 -對象/實例問題?
我有一個名爲調查與類:
ArrayList<Question> questions = new ArrayList<Question>();
名單是我存儲所有屬於調查的問題。 我想重複這個列表並顯示這些問題。
這是棘手的部分。我有一個使用調查的實例來調用它的菜單方法主要類,並在當前的問題是被添加到ArrayList的一個問題類的調查的實例。
當我打印出來:
survey.questions.size()
在我問題類,添加一個問題後,我得到 「1」。
但是,當我打印出我的Survey類中的尺寸時,我得到了「0」。
我相信這個問題是因爲主要使用調查的一個單獨的實例來遍歷比在我加入的問題,在我的問題類實例的問題列表。
我會嘗試清除任何混淆!
public class Survey {
public ArrayList<Question> questions = new ArrayList<Question>();
// Iterate over questions List
public void displayQuestions() {
int numberCount = 1;
int optionCount = 1;
System.out.println(questions.size()); // PRINTS 0
for (int i = 0; i < questions.size(); i++) {
System.out.print("Question" + numberCount + ") ");
System.out.println(questions.get(i).prompt);
for(int j = 0; j < questions.get(i).options.size(); j++) {
System.out.print(optionCount + ". ");
System.out.println(questions.get(i).options.get(j));
}
}
}
public class Main {
private static Survey survey = new Survey();
// After selecting "Display Survey" menu option
survey.displayQuestions();
public class Question {
protected Survey survey = new Survey();
// After finishing making the question
survey.questions.add(this);
System.out.println(survey.questions.size()); // PRINTS 1
這就是我的想法!我非常業餘,我試圖堅持良好的設計。 'survey.displayQuestions()'和'survey.questions.add(this)'都需要調查對象來調用這些方法,但是我將它們放在不同的類中。我不確定如何只使用一個。 – Brejuro 2014-10-27 02:37:17
@Brejuro:請參閱編輯。 – 2014-10-27 02:40:52
非常感謝,非常感謝!我會試着找到一種方法來做你說的,再次感謝:) – Brejuro 2014-10-27 02:43:20