Java实例变量设置为0

Java实例变量设置为0,java,Java,我对Java还不了解,所以请原谅我的无知。我编译了以下代码: import java.lang.Math; public class Main{ double initialBalance; double interestRate; double years; public static final double periodsPerYear = 12; //constructer public Main(double balance, double interest,

我对Java还不了解,所以请原谅我的无知。我编译了以下代码:

import java.lang.Math;
public class Main{
  double initialBalance;
  double interestRate;
  double years;


  public static final double periodsPerYear = 12;

//constructer
  public Main(double balance, double interest, double life){
    }

//methods
  double getMonthlyPayment(){
    return Math.round(initialBalance * ((interestRate/periodsPerYear)+((interestRate/periodsPerYear)/(Math.pow(1+(interestRate/periodsPerYear),periodsPerYear*years)-1)))*100.00)/100.00;
  }


//main method
  public static void main(String[] args){
    double initialBalance = 10000;
    double interestRate = 0.05;
    double years = 2;

    Main loan = new Main( initialBalance, interestRate, years );
    System.out.println(initialBalance);
    System.out.println(interestRate);
    System.out.println(years);
    System.out.println(loan.getMonthlyPayment());
  }
}

问题是当我需要返回438.71时,“System.out.println(loan.getMonthlyPayment())”行返回0.0。我做错了什么?

在初始化对象时:

Main loan = new Main(initialBalance, interestRate, years);
此构造函数称为:

public Main(double balance, double interest, double life){
}
但它什么也没用。它是空的。您需要在构造函数中设置实例变量,如下所示:

public Main(double balance, double interest, double life){
  this.initialBalance = balance;
  this.interestRate = interest;
  this.years = life;
}

Java之于Javascript,犹如痛苦之于绘画,火腿之于仓鼠。他们完全不同。强烈建议有抱负的程序员尝试学习他们试图编写代码的语言的名称。当你发布一个问题时,请适当地标记它-这可以让那些了解你需要帮助的语言的人看到你的问题。它是java而不是JavaScript你不给实例变量赋值
initialBalance
等。建议:添加一些行,如
initialBalance=balance到构造函数-因此字段被初始化(否则它们将保留默认值:零)