为了账号安全,请及时绑定邮箱和手机立即绑定

将用户输入存储到变量中

将用户输入存储到变量中

千万里不及你 2022-05-25 10:00:52
用户输入没有更新相应的变量。当用户在提示时输入数字时,我正在尝试更新 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的是它本身。


查看完整回答
反对 回复 2022-05-25
?
绝地无双

TA贡献1946条经验 获得超4个赞

在java中变量是区分大小写的

this.Dexterity = Dexterity;

应该

this.Dexterity = dexterity;

否则他们指的是同一个变量


查看完整回答
反对 回复 2022-05-25
?
慕斯王

TA贡献1864条经验 获得超2个赞

public void setDex(double dexterity) {

    this.Dexterity = Dexterity;

}

首先,this.Dexterity = Dexterity;一定是this.Dexterity = dexterity;因为dexterity是需要赋值的变量Dexterity。而当您使用 时,实际上您正在分配的this.Dexterity = Dexterity;值 实际上是没有意义的。DexterityDexterity


您编写的所有 setter 方法都有相同的问题。


最后尝试保持命名约定。


查看完整回答
反对 回复 2022-05-25
  • 3 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号