Java 区分超类和子类之间的变量
我正在开发一个程序,允许用户在四支球队中选择主客场足球队。我创建了一个通用的超类团队,该团队定义了每个安全/场地目标/触地得分。生成一个随机数,然后程序根据该随机数逐步执行条件if/else语句以确定操作和点 这在超类中:Java 区分超类和子类之间的变量,java,class,inheritance,subclass,superclass,Java,Class,Inheritance,Subclass,Superclass,我正在开发一个程序,允许用户在四支球队中选择主客场足球队。我创建了一个通用的超类团队,该团队定义了每个安全/场地目标/触地得分。生成一个随机数,然后程序根据该随机数逐步执行条件if/else语句以确定操作和点 这在超类中: public void possessionPoints() { if(points<lowNopoints){ score = noPoints; totalScore = totalScore + score;
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
字段副本
在超类中有一个static
字段意味着它将始终是子类中发生的所有操作的总和。因为每个类只维护一个静态
字段的副本。在您的案例中,您已经在super类中定义了它,这使它成为分数聚合的全局字段。您能澄清一下吗?我删除了单词static
,但是totalScore
在程序中根本不起作用。我现在了解到,static将在整个超类和所有子类中保持totalScore
变量相同。但是,应该在哪里进行更改以及如何进行更改?@PametnaGabi您需要将其作为您的子类的一部分,它代表了这里的团队。@SURESH ATTA我已经查看了“Java静态vs实例”问题。它帮助我理解了静态变量是错误的类型。但是,它不能帮助我回答解决此问题的具体问题。//我不确定我是否应该在超类中使用totalScore
,只是修改设置,还是应该将它放在其他地方?
public class PackersSub extends GenericSuper{
public PackersSub()
{
lowNopoints = 4;
lowSafetypoint = 5;
lowFieldgoal = 7;
}