通常在POJO
中,對於對象的每個變量,都有所謂的getter和setter方法。你的情況:
public class HillClimber{
private int ballWeight;
public HillClimber(){
this.ballWeight = 200;
}
public void setBallWeight(int ballWeight){
this.ballWeight = ballWeight;
}
public int getBallWeight(){
return this.ballWeight;
}
}
通過這種方式,您可以通過get和set方法訪問變量ballWeight
。你不直接像hc.ballWeight
那樣訪問它,這是可能的,但是這是一種不好的做法,並且阻止這種訪問類型將變量聲明爲私有(意味着只有聲明的變量可以直接訪問它)。
要fullfill您在遊戲中的每一個運行增加一個請求,因此你可以打電話
hc.setBallWeight(++hc.getBallWeight()); //Equivalent to hc.setBallWeight(hc.getBallWeight() + 1);
我通常不使用這種方法,如果沒有自動生成的類(如在休眠情況下),而是宣佈的另一種方法在HillClimber
類
public void incrementBallWeight(int ballWeightToAdd){
this.ballWeight += ballweiGhtToAdd; //Equivalent to this.ballWeight = this.ballWeight + ballweiGhtToAdd;
}
,或者如果我總是需要一個只添加到我的變量
public void incrementBallWeight(){
this.ballWeight++;
}
然後在每場比賽結束後簡單地撥打incrementBallWeight
。
注意:有這個工作,你將不得不使用HillClimber
相同的實例。在你的主
public class Game{
private HillClimber hc = new HillClimber(); //Create the instance and sets ballWeight to 200
public static void main(String[] args){
playGame();
hc.incrementBallWeight(); //ballWeight == 201
playAnotherGame()
hc.incrementBallWeight(); //ballWeight == 202 -> Always the same instance of HillClimber (hc)
.
.
.
}
}
編輯
我覺得你的問題是大於。如果不使用永久存儲器,您需要保存變量的狀態(也就是說,如果關閉並打開電腦,該值也應該可用)。這簡直難以實現。
你應該重新考慮你的程序(我的意思是java程序,而不是「遊戲運行」),以便在每次遊戲運行後不停止。您可以通過不同的方式執行此操作:通過Swing GUI
,通過stdin
等用戶輸入。如果你想在這個話題上得到一些幫助,我們需要知道更多你的代碼(也許把整個代碼放在最好的位置)。
或者您可以使用文件來存儲您的值,其中is not as difficult as you think。 (Also)。
這是非常可能的,並且您描述的方式將起作用;你是否把這個物體扔掉,然後創造一個新的實例? –
不,我想我只是想覆蓋這個變量,我怎麼會拋棄它並創建一個新的? – SAF
你的varibable在一個靜態的類中,或者在創建對象的類中,它在哪裏? – Roan