This question already has answers here:
Java Static vs Instance
(9个答案)
4年前关闭。
我正在开发一个程序,允许用户在四支球队之间选择一支主场和客场橄榄球队。我创建了一个通用的超类团队,该团队定义了每个安全性/射门得分/着陆点所分配的分数。生成一个随机数,然后基于该数字,程序逐步执行条件if / else语句以确定动作和分数。
这是在超类中:
注意:以上
在整个过程中,我想跟踪
输出:
主队行动。
没有分数加0
当前得分:0
客队动作。
射门得分,再加上3
当前得分:3
主队行动。
射门得分,再加上3
目前得分:6
客队动作。
射门得分,再加上3
目前得分:9
主队行动。
安全加2
目前得分:11
另外,如果有帮助,这就是我在下面的其他团队的每个子类中设置的所有内容。我对
有关如何解决此问题的任何想法?我想跟踪每个团队的
(9个答案)
4年前关闭。
我正在开发一个程序,允许用户在四支球队之间选择一支主场和客场橄榄球队。我创建了一个通用的超类团队,该团队定义了每个安全性/射门得分/着陆点所分配的分数。生成一个随机数,然后基于该数字,程序逐步执行条件if / else语句以确定动作和分数。
这是在超类中:
public void possessionPoints()
{
if(points<lowNopoints){
score = noPoints;
totalScore = totalScore + score;
System.out.println("No points, plus " + score);
}
else if(points<lowSafetypoint){
score = safetyPoint;
totalScore = totalScore + score;
System.out.println("Safety, plus" + score);
}
else if(points<lowFieldgoal){
score = fieldGoal;
totalScore = totalScore + fieldGoal;
System.out.println("Field goal, plus" + score);
}
else{
score = touchDown;
totalScore = totalScore + touchDown;
System.out.println("Touchdown, plus" + score);
}
ArrayList<Integer> totalScore;
totalScore = new ArrayList<>();
totalScore.add(score);
//the sum score
int sum = totalScore.stream().mapToInt(Integer::intValue).sum();
System.out.println("Current score is: " + sum);
}
注意:以上
totalScore
初始化为public static int totalScore = 0;
在整个过程中,我想跟踪
totalScore
。我在超类中拥有此设置,但是,当程序运行时,它会在整个游戏中加总得分,并且不会区分团队。输出:
主队行动。
没有分数加0
当前得分:0
客队动作。
射门得分,再加上3
当前得分:3
主队行动。
射门得分,再加上3
目前得分:6
客队动作。
射门得分,再加上3
目前得分:9
主队行动。
安全加2
目前得分:11
另外,如果有帮助,这就是我在下面的其他团队的每个子类中设置的所有内容。我对
totalScore
不做任何事情。public class PackersSub extends GenericSuper{
public PackersSub()
{
lowNopoints = 4;
lowSafetypoint = 5;
lowFieldgoal = 7;
}
有关如何解决此问题的任何想法?我想跟踪每个团队的
totalScore
。谢谢! 最佳答案
如果要跟踪每个团队的级别,则应将其定义为成员变量,以便每个团队都有自己的totalScore
字段副本。
在超类中归档static
意味着它将始终是子类中正在发生的所有动作的总和。因为每个类仅维护一个static
字段的副本。在您的情况下,您已在超类中对其进行了定义,这使其成为得分汇总的全局字段。
07-24 18:49