【问题标题】:Implement getters and setters?实现getter和setter?
【发布时间】:2018-05-24 18:19:15
【问题描述】:

我是一个初学者,我正在尝试创建一个测验来询问用户 3 个问题,我创建了 2 个数组:一个用于问题,一个用于正确答案:

public static void main (String[] param) {

    String QArray[] = new String[3];
    QArray[0] = "What is 5 x 10?";
    QArray[1] = "What is 10 x 12?";
    QArray[2] = "What about 10 x 10?";

    String AArray[] = new String[3];
    AArray[0] = "50";
    AArray[1] = "120";
    AArray[2] = "100";
    ...
}

为了让它工作:

    for (int n = 0; n < QArray.length; n++) {
        System.out.println("Question" + (n + 1));
        System.out.println((QArray[n]));

        for (int m = 0; m < 3; m++) {
            String ans = scanner.nextLine();
            if (ans.equalsIgnoreCase(AArray[n])) {
                System.out.println("You got it right!");
                break;
            } else {
                System.out.println("\nThat is incorrect!");
            }
        }
    }

但是我需要在我的代码中包含 getter 和 setter,如何在数组中包含 getter 和 setter?我需要用什么替换它?

【问题讨论】:

  • QuestionAnswer 应该是objects 和它们的getterssetters,然后我们创建一个对象数组并添加它们。很粗,我觉得上一堂面向对象的编程课也不过分..

标签: java java.util.scanner getter-setter setter getter


【解决方案1】:

我不明白为什么你需要 getter setter 在这里。使用字符串数组,你已经做得很好了。

但是你可以做的是创建问题对象和答案对象:

class Question{
    private String question;

    public String getQuestion() {
        return question;
    }

    public void setQuestion(String questionString) {
        question=questionString
    }
}

class Answer {
    private String answer;

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answerString) {
        answer=answerString
    }
}

并根据上述代码的要求适当地使用 getter 和 setter。

编辑:将类变量标记为私有。

【讨论】:

  • 如果你不明白为什么需要getter和setter是因为你不了解面向对象编程的封装原理,这就解释了为什么你没有把类变量放在private中。跨度>
  • 我打算,我只是忘了这里先生。我明白你想说的话。但是他所做的即使是面向过程的要求也很好,除非他的上级告诉他使用对象并因此有 getter setter。
  • 它与这些上级无关...... Java是一种面向对象的语言,它必须按照这些编码规则来使用。目标不仅是它有效,而且任何恢复工作的人都必须理解它,并且它可以及时维护。
  • 另外,这仍然是你不理解的错误证明......你的setter是this.question = questionString;并且你的response setter有参数String questionString....不想冒犯你如果您不了解这些原则,您将无能为力,您的答案必然是错误的。见here它可以帮助你。
  • 如果这是最后一个要求怎么办?为什么要采用如此复杂的方式来实现功能?在他完成后在主类中编写它仍然是 OO,因为我认为他的程序范围有限。
猜你喜欢
  • 2019-05-14
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-11
  • 1970-01-01
相关资源
最近更新 更多