如何修改变量的值?

时间:2016-09-19 14:53:31

标签: java

public class SavingsAccount {
public static int annualInterestRate = 0;
private double savingsBalance = 0;

public double calculateMonthlyInterest(){
    return (savingsBalance * annualInterestRate)/12;
}

}

这就是我现在拥有的。除了设定值之外,我做了所需的每一部分。我需要一个静态方法来将annualInterestRate的值设置为其他值。如您所知,要在静态方法中修改某些内容,变量也应该是静态的。这就是为什么annualInterestRate是静态的。我的问题是,我不知道如何创建一种方法,也不会对其进行硬编码。我需要一个可以在另一个类中测试的方法。我应该使用set和get方法来执行我想要的吗?

3 个答案:

答案 0 :(得分:0)

访问成员变量的方法方法需要声明为public,而成员变量应该是私有的,只能通过访问方法进行修改。

答案 1 :(得分:0)

static字段是绑定到类的全局变量。发生一次。 因此,将字段设置为非静态字段,该字段将成为每个SavingsAccount对象this

的一部分。
public class SavingsAccount {

    public int annualInterestRate = 0;

    public double savingsBalance = 0;

    public void calculateMonthlyInterest() {
        double y = (savingsBalance*annualInterestRate)/12;
        savingsBalance = y +savingsBalance;
    }

    public void modifyInterestRate(int n) {
        this.annualInterestRate = n; // Or simply:
        annualInterestRate = n;
    }
}

顺便说一句字段无需初始化。默认情况下,它们将为0,0.0,null,false。

答案 2 :(得分:0)

将这些变量设为静态意味着SavingsAccount的每个实例都会看到相同的值。

当您创建我的SavingsAccount时,请将值设置为等于Warren Buffet的余额。

更好的想法是使用实​​例变量:

public class Account {
    private double balance;

    public Account(double balance) { this.balance = balance; }

   public double getBalance() { return this.balance; }
   public void setBalance(double newBalance) { this.balance = newBalance; }
}