我正在制定一個程序,允許用戶選擇四個隊之間的主客場球隊。我創建了一個通用超類團隊,它定義了每個安全/現場目標/觸地點分配的點數。生成一個隨機數,然後基於該數字,程序通過條件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
被intialized爲public static int totalScore = 0;
縱觀這一切,我想保留totalScore
軌道。我在超類中有這樣的設置,但是,當程序運行時,它將整個遊戲的分數加起來,並且不區分團隊。
輸出:
主隊行動。 沒有積分,加0 當前積分:0
客隊的行動。 射門得分,加3 當前得分:3
主隊的行動。 現場進球,加3 當前積分:6
客隊的行動。 射門得分,加3 當前得分:9
主隊的行動。 安全,PLUS2 當前得分:11
另外,如果有幫助,這是所有我在每個子類下面的其他球隊設置。我不對totalScore
做任何事情。
public class PackersSub extends GenericSuper{
public PackersSub()
{
lowNopoints = 4;
lowSafetypoint = 5;
lowFieldgoal = 7;
}
有關如何解決此問題的任何想法?我想跟蹤每隊的totalScore
。謝謝!
@SURESH ATTA我已經看過「Java靜態與實例」問題。它幫助我理解靜態變量是錯誤的類型。但是,它不能幫助我回答解決此問題的具體問題。 //我不確定是否應該在超類中使用'totalScore',只是修改設置或者是否應該將它放在其他位置? – PametnaGabi