用戶輸入沒有更新相應的變量。當用戶在提示時輸入數字時,我正在嘗試更新 Dexterity 變量。我創建了一個 setDex 方法,當添加到 getDex 方法時,它應該接受用戶輸入量并更新它。getDex 方法應該檢索變量的當前值。public class SetAttributes { double Dexterity; double Strength; double Intelligence; double Stamina; double SkillPoints = 50; public SetAttributes() { this.setDex(0); this.setStr(0); this.setInt(0); this.setSta(0); this.setSkillPoints(50); } public double getSP(){ return SkillPoints; } public double getDex() { return Dexterity; } public double getStr(){ return Strength; } public double getInt(){ return Intelligence; } public double getSta(){ return Stamina; } public void setDex(double dexterity) { this.Dexterity = Dexterity; } public void setStr(double strength){ this.Strength = Strength; } public void setInt(double intelligence){ this.Intelligence = Intelligence; } public void setSta(double stamina){ this.Stamina = Stamina; } public void setSkillPoints(double skillPoints) {this.SkillPoints = SkillPoints;};}public final class PointSpender { public static void Spend(){ SetAttributes Attribute = new SetAttributes(); Scanner SkillChoice = new Scanner(System.in); System.out.println("What skill do you want to increase? Dex, Str, Sta, or Int?"); switch(SkillChoice.nextLine().charAt(0)){ case 'd': System.out.println("How many points towards Dexterity?"); System.out.println("Your current Dexterity is " + Attribute.Dexterity); double amount = SkillChoice.nextDouble(); Attribute.setDex(amount + Attribute.getDex()); System.out.println(Attribute.Dexterity);
3 回答

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
您所有的 setter 方法都遵循相同的問題(這就是為什么您應該遵循諸如 variables being 之類的約定camelCase),所以讓我們選擇其中的任何一個。
public void setSta(double stamina){
this.Stamina = Stamina;
}
如您所見,您將類級別變量設置為Stamina等于變量Stamina。方法參數被調用stamina。所以你要設置this.Stamina的是它本身。

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
在java中變量是區分大小寫的
this.Dexterity = Dexterity;
應該
this.Dexterity = dexterity;
否則他們指的是同一個變量

慕斯王
TA貢獻1864條經驗 獲得超2個贊
public void setDex(double dexterity) {
this.Dexterity = Dexterity;
}
首先,this.Dexterity = Dexterity;一定是this.Dexterity = dexterity;因為dexterity是需要賦值的變量Dexterity。而當您使用 時,實際上您正在分配的this.Dexterity = Dexterity;值 實際上是沒有意義的。DexterityDexterity
您編寫的所有 setter 方法都有相同的問題。
最后嘗試保持命名約定。
添加回答
舉報
0/150
提交
取消