【发布时间】:2014-12-22 04:55:52
【问题描述】:
所以这对我来说是一个相当复杂的问题,但我会尽力解释 -
我有一个名为 Survey 的课程,其中包含:
ArrayList<Question> questions = new ArrayList<Question>();
该列表是我存储属于调查的所有问题的地方。 我正在尝试遍历此列表并显示这些问题。
这是棘手的部分。我有一个 Main 类,它使用 Survey 的实例来调用它的菜单方法,并在 QuestionSurvey 的实例/strong> 将当前问题添加到 ArrayList 的类。
当我打印出来时:
survey.questions.size()
在我的 Questions 课程中,添加一个问题后,我得到“1”。
但是,当我在 Survey 课程中打印出尺寸时,我得到了“0”。
我认为问题是因为 Main 使用单独的 Survey 实例来迭代问题列表,而不是我在 Question 中添加问题的实例强>类。
我会尽力消除任何困惑!
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
【问题讨论】:
标签: java oop object instance instances