我有一個充當投注者的類,在那個類中,投注者可以在創建投注的方法中下注。然而,投注類的構造者需要從投注者類中獲取與該投注者相同的參考。人們如何去做這件事?Java - 你如何將一個對象作爲參數傳遞給構造函數中的對象類
這是我正在嘗試使用的代碼。我認識到,使投注者類的一個新的參考,但我想我會試試看,反正
public Bet placeBet(Bet.BetType betType, double amount)
{
if(betType.equals(Bet.BetType.passBet))
{
this.bankroll=bankroll-amount;
return new PassBet(new Bettor(this.name,this.bankroll),amount);
}
else if(betType.equals(Bet.BetType.any7))
{
this.bankroll=bankroll-amount;
return new Any7Bet(new Bettor(this.name,this.bankroll),amount);
}
else if(betType.equals(Bet.BetType.hard8)||betType.equals(Bet.BetType.hard10))
{
this.bankroll=bankroll-amount;
return new HardWayBet(new Bettor(this.name,this.bankroll),amount);
}
return null;
}
而PassBet類看起來就像這樣(這是賭注類的子類,它持有Bettor參考和賭注金額)。
public PassBet(Bettor b, double amount)
{
super(b,amount);
}
我會如何傳入原始投注者作爲參數到我PassBet子類,然後將其存儲在超打賭嗎?
您提問並非100%清楚。根據您的代碼,您必須知道'this'指向當前實例,因爲您正在使用它來訪問字段。你也可以簡單地將'this'傳遞給另一個方法/構造函數,就像任何其他引用一樣 - 是否可以回答這個問題? –
@PaulBellora在構造函數中傳遞* this *實在是個不錯的主意。看看[這裏](http://stackoverflow.com/questions/2419410/passing-this-in-java-constructor)和[這裏](http://www.ibm.com/developerworks/java/library/j -jtp0618/index.html中)。 – Jayamohan
@Jayamohan是的,我意識到這一點 - 但如果我理解正確的話,它會從'placeBet'傳遞。我只是想澄清問題,否則這將是一個答案。 –