вопрос о доступе к arraylist для другого класса

#java

#java — язык #java

Вопрос:

Теперь у меня есть два класса, и я хочу задать тест на T / F вопрос, я застрял в том, как использовать эти два класса, у меня есть

 public class TFQuestion {
    private String question;
    private boolean answer;
    private int skillLevel;

    public TFQuestion(String question, boolean isTrue, int level) {
        this.question = question;
        this.answer = isTrue;
        this.skillLevel = level;
    }

    public void setQuestion(String text){
        this.question = text;
    }

    public String getQuestion(){
        return this.question;
    }

    public void setAnswer(boolean isTrue){
        this.answer = isTrue;
    }

    public boolean getAnswer(){
        return this.answer;
    }

    public void setSillLevel(int level){
        this.skillLevel = level;
    }

    public int getSkillLevel(){
        return this.skillLevel;
    }
}
  

 public class TFQuestionList {
    private ArrayList<TFQuestion> allQuestions;

    public TFQuestionList(int level) {
        allQuestions = new ArrayList<TFQuestion>();
        TFQuestion quest;
        if (level == 0) {
            quest = new TFQuestion("question1", true, level);
            allQuestions.add(quest);
            quest = new TFQuestion("question2.", false, level);
            allQuestions.add(quest);
            quest = new TFQuestion("question3", true, level);
            allQuestions.add(quest);
            quest = new TFQuestion("question4", false, level);
            allQuestions.add(quest);
        } else if (level == 1) {
            quest = new TFQuestion("Question 11", true, level);
            allQuestions.add(quest);
            quest = new TFQuestion("Question 12", false, level);
            allQuestions.add(quest);
            quest = new TFQuestion("Question 13", true, level);
            allQuestions.add(quest);
            quest = new TFQuestion("Question 14", false, level);
            allQuestions.add(quest);
        } else if (level == 2) {
            quest = new TFQuestion("Question 21", true, 2);
            allQuestions.add(quest);
            quest = new TFQuestion("Question 22", false, 2);
            allQuestions.add(quest);
            quest = new TFQuestion("Question 23", true, 2);
            allQuestions.add(quest);
            quest = new TFQuestion("Question 24", false, 2);
            allQuestions.add(quest);
        }
    }
  

Для уровня int я уже получил это из другого activity, мне просто сложно получить доступ к обоим классам, например, как я могу использовать TFQuestionList в TFQuestion, какой метод я должен использовать?
Я не могу собрать их вместе, чтобы получить доступ к необходимой мне информации в TFQuestionList и использовать метод в TFQustion.
спасибо за вашу помощь!

Ответ №1:

Если бы я понял ваш вопрос, вы бы не указали, TFQuestionList где TFQuestion к нему можно получить доступ. Здесь у вас есть довольно хорошая модель, в которой вы смоделировали вопрос и список вопросов. Вы настроили его так, что конструктор принимает уровень и добавляет вопросы.

Итак, оставляя в стороне определенные аспекты модифицируемости и предоставления внутренних функций, я думаю, что вы хотели бы добавить к TFQuestionList методу getter для получения вопросов:

 public List<TFQuestion> getQuestions() {
  return allQuestions;
}
  

Итак, где-то вы находитесь / захотите создать экземпляр TFQuestionList с уровнем, а затем вы захотите иметь какой-то цикл отображения, который представляет вопросы (и собирает входные данные от пользователя). Вы не показали код для того, как вы выполняете эту часть цикла, но концептуально это прямолинейно.