You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Amortization类中calcPayment方法无法识别loan变量

问题解决
  • 核心问题:构造函数的参数loan是局部变量,仅在构造函数内部有效,calcPayment方法无法访问这个局部变量。
  • 解决方案:你已经在构造函数中将loan的值赋值给了实例变量loanAmount,且需求要求保留该变量,直接在calcPayment里用loanAmount替代loan即可。
  • 额外提醒:构造函数里还没给interestRate赋值,记得把参数rate赋值给它,否则计算时interestRate会默认是0,导致结果错误。

修改后的代码:

import java.io.*;
import java.text.DecimalFormat;

public class Amortization {
    private double loanAmount; // holds the amount of the loan
    private double interestRate; // holds the interest rate
    private double loanBalance; // holds the monthly balance
    private double term; // utilized in order to calculate the monthly payments
    private double payment; // holds the cash amount of the monthly payments
    private int loanYears; // holds the number of years in the loan
    
    public Amortization(double loan, double rate, int years) {
        loanAmount = loan;
        loanBalance = loan;
        loanYears = years;
        interestRate = rate; // 补上这行,给interestRate赋值
        calcPayment();
    }
    
    private void calcPayment() {
        term = Math.pow((1+interestRate/12),(loanYears*12));
        payment = (loanAmount * (interestRate/12) * term)/(term - 1); // 把loan换成loanAmount
    }
}

内容的提问来源于stack exchange,提问作者mvodeja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:30:59