Java使用方法并调用它们

Java使用方法并调用它们,java,methods,Java,Methods,因此,我试图将代码的其他部分的利率设置为不同的值。我只想在方程式calc new balance中使用SetInterestate setInterestRate是否有办法知道何时调用它是第13次,并为利率实例化一个新值?原语不是对象,也不是实例化的。此外,使这些静态的完全失去了重点- package savingsaccount; public class SavingsAccount { static double AnnualInterestRate; static do

因此,我试图将代码的其他部分的利率设置为不同的值。我只想在方程式calc new balance中使用SetInterestate

setInterestRate是否有办法知道何时调用它是第13次,并为利率实例化一个新值?

原语不是对象,也不是实例化的。此外,使这些静态的完全失去了重点-

package savingsaccount;

public class SavingsAccount
{
    static double AnnualInterestRate;
    static double savingsBalance;

    public static double setInterestRate(double annualInterestRate) {
        annualInterestRate=.04;
        return annualInterestRate;
    }

    public static double calcnewbalance(double newsaverbal) {
        AnnualInterestRate = setInterestRate(AnnualInterestRate);
        newsaverbal = (newsaverbal * AnnualInterestRate/12) + newsaverbal;
        return newsaverbal;
    }

    public static void main(String[] args) {
        System.out.println("Savings    Account    Balances");
        System.out.println("Month    Saver1    Saver2");
        double saver1=2000;
        double saver2=3000;
        for(int n=1; n<=13; n=n+1) {
            if(n<10) {
                savingsBalance = calcnewbalance(saver1);
                saver1 = savingsBalance;
                System.out.printf( " "+ n + "        %.2f   " , saver1);
                savingsBalance = calcnewbalance(saver2);
                saver2 = savingsBalance;
                System.out.printf("%.2f%n" , savingsBalance);

            } else if(n<13 && n>9) {
                savingsBalance = calcnewbalance(saver1);
                saver1 = savingsBalance;
                System.out.printf(n + "        %.2f   " , saver1);
                savingsBalance = calcnewbalance(saver2);
                saver2 = savingsBalance;
                System.out.printf("%.2f%n" , saver2);
            } else {
                savingsBalance = calcnewbalance(saver1);
                saver1 = savingsBalance;

                System.out.printf(n + "        %.2f   " , saver1);
                savingsBalance = calcnewbalance(saver2);

                saver2 = savingsBalance;
                System.out.printf("%.2f%n" , saver2);
            }
        }
    }
}
应该是访问器和变异器,或者是获取器和设置器

static double savingsBalance;
static double AnnualInterestRate;
public static double setInterestRate(double annualInterestRate) {
    annualInterestRate=.04;
    return annualInterestRate;
}
然后

可能是

public double calcnewbalance(double balance) {
    AnnualInterestRate = setInterestRate(AnnualInterestRate); // 0.4 is always 0.4
    newsaverbal += (newsaverbal * getInterestRate()/12);
    return newsaverbal;
}
接下来,是一个无参数SavingsAccount构造函数-

public void applyInterest() {
    balance += (balance * getInterestRate()/12);
}
最后,总的来看,


使用int类型的变量并增加它,如果变量等于13,则启动函数?因为else中的代码只有在n==13时才会执行,所以您可以简单地在那里实现您想要的任何逻辑,并且它将在第13次执行。问题是calcnewbalance不知道它在else语句中。我需要setinterest独立运行,那么在第12个循环之后,我将如何从.4更改为.5?
public void applyInterest() {
    balance += (balance * getInterestRate()/12);
}
public SavingsAccount(double balance) {
  this.annualInterestRate = 0.04;
  this.balance = balance;
}
SavingsAccount sa = new SavingsAccount();
for (int = 0; i < 13; i++) {
  System.out.println(sa.getBalance());
  sa.applyInterest();
}
private int interestCount = 0;
public void applyInterest() {
    if (interestCount++ > 12) {
      interestCount = 0;
      setInterestRate(0.05);
    }
    balance += (balance * getInterestRate()/12);
}