java - 如何在没有参数和参数的方法之间传递变量

标签 java class methods mutators

我的一个学校项目有点问题。我们应该编写一个 Loan 类来执行与贷款相关的事情,例如返回每月还款额和贷款总还款额。我的问题是我有关于这段代码的具体说明,我绝对不能超出。 这是代码:

    import java.util.Scanner;
    import java.text.DecimalFormat;
    import java.lang.Math;

    public class Loan
    {
        public double annualInterestRate = 0;
        public int numberOfYears = 0;
        public double loanAmount = 0;

        public Loan()
        {
            annualInterestRate = 0.025;
            numberOfYears = 1;
            loanAmount = 1000;
        }

        public Loan(double interestRate, int numYears, double amount)
        {
            setRate(interestRate);
            setYears(numYears);
            setLoanAmount(amount);
        }

        public void setRate(double interest)
        {
        DecimalFormat percent = new DecimalFormat( "0.0%" );
            if(interest > 25 || interest < 0)
            {
                System.out.println("WARNING: Invalid annual interest rate: " + percent.format(interest) + ".");
                System.out.println("Current value not changed: " + percent.format(annualInterestRate * 100) + ".");
            }
            else
            {
                annualInterestRate = interest;
            }
        }

        public void setYears(int years)
        {
            if(years > 30 || years <= 0)
            {
                System.out.println("WARNING: Invalid number of years: " + years + ".");
                System.out.println("Current value not changed: " + numberOfYears + ".");
            }
            else
            {
                numberOfYears = years;
            }
        }

        public void setLoanAmount(double amnt)
        {
            DecimalFormat loan = new DecimalFormat( "$#,##0.00" );
            if(amnt <= 0)
            {
                System.out.println("WARNING: Invalid loan amount: " + loan.format(amnt) + ".");
                System.out.println("Current value not changed: " + loan.format(amnt) + ".");
            }
            else
            {
                loanAmount = amnt;
            }
        }

        public double getAnnualInterestRate()
        {
            return annualInterestRate;
        }

        public int getNumberOfYears()
        {
            return numberOfYears;
        }

        public double getLoanAmount()
        {
            return loanAmount;
        }

        public double getMonthlyPayment()
        {
            double monthly = annualInterestRate/12;
            double monthlyPayment = (loanAmount * monthly)/1 - (1/(1 + monthly));
            monthlyPayment = Math.pow(monthlyPayment, 12);
            return monthlyPayment;
        }

        public double getTotalPayment()
        {
            double totalPayment = getmonthlyPayment() * 12;
            return totalPayment;
        }

        public String toString()
        {
            DecimalFormat percent = new DecimalFormat( "0.0%" );
            DecimalFormat loan = new DecimalFormat( "$#,##0.00" );

            String interestRate = percent.format(annualInterestRate);
            String numOfYears = Integer.toString(numberOfYears);
            String loanAmnt = loan.format(loanAmount);

            String total = "Annual Interest Rate:\t" + interestRate + "\nNumber of Years:\t\t" + numOfYears + "\nLoan Amount:\t\t\t" + loanAmnt;

            return total;
        }
    }

我的问题出在 getTotalPayment 方法上。如果我不将 monthlyPayment 声明为一个字段(如 annualInterestRate)或将其传递给 getTotalPayment 方法,它就无法访问 monthlyPayment 变量。问题是,getTotalPayment 不允许有参数,而且我们的字段不能超过她指示我们拥有的三个字段,也就是您将在代码开头看到的三个字段。 所以,我的问题是:有没有办法让变量 monthlyPayment 可供 getTotalPayment 访问,而无需将 monthlyPayment 设置为一个字段或为 getTotalPayment 提供一个参数?

最佳答案

您的 getTotalPayment() 方法中存在拼写错误。

您尝试做的是在您应该调用 getMonthlyPayment() 时调用方法 getmonthlyPayment()

万一您错过了我的回答中的细微差别,当您想要大写的“M”时,您有一个小写的“m”。

我不确定这是否是您的问题,但这是我的 IDE 告诉我的唯一语法错误。

关于java - 如何在没有参数和参数的方法之间传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33570675/

相关文章:

java - 我需要在表中单击 Ctrl+A 时启用按钮

java - 使用 GSON 库获取 JSON 键值

java - 从一个方法返回两个变量

java - 返回 javax.ws.rs.core.Response 的列表,结果为 500

java - 如何在太多类之间传递值?

php - 关于使用类的类的开始 OOP 问题

java - 从 'separated' 类访问多个变量(不可见)

php - 您可以从 PHP 中的方法中获取方法名称吗?

ruby - 由模块中定义的另一个覆盖方法

java - Java中循环进度条显示