1

我目前正在编写一个简单的 Android 应用程序,它会询问用户一系列问题,然后告诉他们有多少是正确的。我有一个类,它有一个私有的全局变量(称为“分数”),我有它的 getter 和 setter 方法。当用户得到正确答案时,分数会增加(本地)并在该类中从 0 更新到 1。但是,当我尝试使用我创建的 getScore() 方法来访问另一个类中的 score 值时,它说 score 值是 0,而不是 1。例如

    public ClassA {
        private int score =  0;

        public void setScore(int s) {
           this.score = s;
        }
        public int getScore() {
           return score;
        }
    }

    public ClassB {
        private ClassA eg = new ClassA();
        private int score = eg.getScore();
    }

我已经坚持了一段时间,真的不知道为什么这不起作用。非常感谢您的帮助。谢谢。

4

3 回答 3

2

在获得分数之前设置分数。

public ClassB {
        private ClassA eg = new ClassA();

        eg.setScore(5);
        private int score = eg.getScore();
        System.out.println(score);
    }

希望这可以帮助。

于 2013-08-14T18:32:01.413 回答
1

确保实际增加分数ClassB。还要做score一个static变量。

于 2013-08-14T18:33:40.010 回答
0

像这样编辑您的代码:

   public ClassA {
    private static int score =  0;

    public void setScore(int s) {
       this.score = s;
    }
    public int getScore() {
       return score;
    }
}

public ClassB {
    private ClassA eg = new ClassA();
    int score = 0;
    if(answerCorrect())
    {
         score++;
         eg.setScore(score);
    }
    private int realScore = eg.getScore();
    System.out.print("Final Score : "+realScore);
}

并且,创建一个方法answerCorrect()来检查答案是否正确,这个方法将返回boolean

于 2013-08-14T18:36:05.170 回答