Java 如何在没有参数和参数的方法之间传递变量
我的一个学校项目有点问题。我们应该编写一个Loan类,它将执行与贷款相关的操作,例如返回每月付款和贷款的总付款。我的问题是,我对这段代码有明确的说明,我绝对不能超出这个范围。 代码如下:Java 如何在没有参数和参数的方法之间传递变量,java,class,methods,mutators,Java,Class,Methods,Mutators,我的一个学校项目有点问题。我们应该编写一个Loan类,它将执行与贷款相关的操作,例如返回每月付款和贷款的总付款。我的问题是,我对这段代码有明确的说明,我绝对不能超出这个范围。 代码如下: import java.util.Scanner; import java.text.DecimalFormat; import java.lang.Math; public class Loan { public double annualIntere
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;
}
}
import java.util.Scanner;
导入java.text.DecimalFormat;
导入java.lang.Math;
公共类贷款
{
公共双年度利率=0;
公共整数年份=0;
公共双loanAmount=0;
公共贷款()
{
年利率=0.025;
numberOfYears=1;
loanAmount=1000;
}
公共贷款(双倍利率,国际货币,双倍金额)
{
凝固速率(利率);
setYears(numYears);
setLoanAmount(金额);
}
公共无效设定利率(双倍利息)
{
DecimalFormat百分比=新的DecimalFormat(“0.0%”);
如果(利息>25 | |利息<0)
{
System.out.println(“警告:无效年利率:“+百分比格式(利息)+”);
System.out.println(“当前值未更改:+百分比格式(AnnualInterestate*100)+”);
}
其他的
{
年利率=利息;
}
}
公共年数(整数年)
{
如果(years>30 | | years在修改后的代码中,调用getMonthlyPayment()
时需要大写M
,则getTotalPayment()
方法中存在拼写错误
您试图做的是在应该调用getmonthlyPayment()
时调用方法getmonthlyPayment()
如果你错过了我答案中的细微差别,当你想要大写字母“m”时,你就有一个小写字母“m”
我不确定这是否是您的问题,但这是IDE告诉我的唯一语法错误。为什么不直接从getTotalPayment()调用getMonthlyPayment()函数?:)我只是尝试了一下,因为我没有想到这一点,并且得到了与使用monthlyPayment时相同的错误;即错误:找不到符号。是否添加括号?->double totalPayment=getMonthlyPayment()*12;您的类看起来很奇怪。为什么所有的方法都是静态的?如果您使方法无效,只需不返回任何内容:public void setSmtH(int-smh){this.smth=smth;}另外,从构造函数初始化静态字段是非常非常错误的。请记住,一个类的所有实例都共享相同的静态字段。这可能不是因为您没有设置答案的格式以将方法包含在代码格式中。另一个原因可能是您的答案太短或没有提供足够的信息。欢迎光临对于第一篇帖子,不管是谁!无论如何,在时间戳从几分钟变为几小时之前-我想记录下我在@Luke Melaia;-)之前7分钟回答了这个问题,实际上比7分钟早了很多。顺便说一下,我应该说:欢迎使用Stack Overflow。为了获得更多的声誉,请访问常见问题解答并查看一些好的回答。感受一下这里的一切是如何运作的。关于你的答案,虽然有些不完整,但在技术上是正确的。