Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么循环从对象数组中打印相同的内容?_Java - Fatal编程技术网

Java 为什么循环从对象数组中打印相同的内容?

Java 为什么循环从对象数组中打印相同的内容?,java,Java,当我运行程序,输入几个抵押贷款,然后结束程序时,它会打印出整个对象数组,mortgageArray[],但出于某种原因,它只打印出您输入的最后一个抵押贷款。不知道为什么有人能帮我?我认为问题可能在于将对象实例化到数组中 抵押贷款类别 import java.util.*; 导入java.lang.Math.*; 导入java.text.DecimalFormat; 公营按揭{ 私有静态int loanAmount; 私有静态整数项; 私人静态双重利率; 私有静态字符串accountNum; 私有

当我运行程序,输入几个抵押贷款,然后结束程序时,它会打印出整个对象数组,mortgageArray[],但出于某种原因,它只打印出您输入的最后一个抵押贷款。不知道为什么有人能帮我?我认为问题可能在于将对象实例化到数组中

抵押贷款类别

import java.util.*;
导入java.lang.Math.*;
导入java.text.DecimalFormat;
公营按揭{
私有静态int loanAmount;
私有静态整数项;
私人静态双重利率;
私有静态字符串accountNum;
私有静态字符串lastName;
私人静态双月付款;
私人静态双重支付;
公共抵押(国际贷款金额1、国际条款1、双重利息1、字符串账户num1){
loanAmount=loanAmount1;
术语=术语1;
利率=利率1;
accountNum=accountNum1;
}
公共空间推广(){
抵押m=新抵押();
m、 storeLastName();
m、 storeAccountNum();
lastName=getLastName();
accountNum=getAccountNum();
月付款=m.Calc月付款();
totalPayment=m.calcTotalPayment();
}
public void unique(){
抵押m=新抵押();
m、 storeLastName();
m、 storeAccountNum();
m、 storeLoanAmount();
m、 storeInterestRate();
m、 storeTerm();
月付款=m.Calc月付款();
totalPayment=m.calcTotalPayment();
}
公共抵押贷款(){
//虚拟构造函数
}
公共静态int getLoanAmount(){
返回loanAmount;
}
public void storeLoanAmount(){
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入贷款金额(Ex:75000):”;
int loanAmount1=s.nextInt();
而(loanAmount1<75000 | | loanAmount1>1000000){
System.out.println(“\t有效贷款金额为75000-1000000美元”);
System.out.println(“\t请重新输入贷款金额,不带$或逗号(例如:75000):”;
loanAmount1=s.nextInt();
}
loanAmount=loanAmount1;
}
公共静态int getTerm(){
回报期;
}
公共术语(){
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入贷款年数:”);
int term1=s.nextInt();
而(term1<10 | | term1>40){
System.out.println(“\t有效贷款期限为10-40”);
System.out.println(“\t请重新输入有效年数:”);
term1=s.nextInt();
}
术语=术语1;
}
公共静态双getInterestRate(){
还本付息;
}
公共利益{
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入年利率(Ex:8.25):”;
double interestRate1=s.nextDouble();
而(利率1<2 | |利率1>7){
System.out.println(“\t有效利率为2%-7%”);
System.out.println(“\t请重新输入有效年利率(Ex:8.25):”;
interestRate1=s.nextDouble();
}
利率=利率1;
}
公共字符串getLastName(){
返回姓氏;
}
public void storeLastName(){
扫描仪s=新的扫描仪(System.in);
System.out.println(“仅输入客户的姓氏:”);
字符串lastName1=s.nextLine();
lastName=lastName1;
}
私人双倍计算每月付款(){
整数个月=期限*12;
双月利率=(利率/12/100);
双月支付=(loanAmount*monthlyInterest)/(1-数学功率(1+monthlyInterest,-1*个月));
按月归还;
}
私人双卡支付(){
double totalPay=calcMonthlyPayment()*期限*12;
返回工资总额;
}
公共字符串getAccountNum(){
返回accountNum;
}
public void storeAccountNum(){
StringBuilder accountNum1=新的StringBuilder();
Random rand=新的Random();
int accNum=rand.nextInt(9900);
accNum+=100;
accountNum1.append(lastName.substring(0,4));
accountNum1.append(accNum);
accountNum=accountNum1.toString();
}
公共字符串toString(){
DecimalFormat df=新的DecimalFormat(“#,#,##.00”);
字符串strMonthlyPayment=(“$”+df.format(calcMonthlyPayment());
字符串strTotalPayment=(“$”+df.format(calcTotalPayment());
返回(“账号:“+accountNum+”\n月付款为“+strMonthlyPayment+”\n总付款为“+strotalpayment”);
}
}
MortgageApp类

import java.util.*;
公共类抵押应用程序{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
抵押m=新抵押();
int size=10;
抵押[]抵押数组=新抵押[大小];
int指数=0;
对于(索引=0;索引3){
System.out.println(“\t\t有效选择。请选择1、2或3:”;
choice=s.nextInt();
}
如果(选项==1){
m、 推广的();
字符串accountNum1=m.getAccountNum();
抵押数组
 for(int j = 0; j < 10; j++){
     if(mortgageArray[j] != null){
         System.out.println(mortgageArray[1].toString() + "\n");
     }
 }
System.out.println(mortgageArray[j].toString() + "\n");
private int loanAmount;
private int term;
private double interestRate;
private String accountNum;
private String lastName;
private double monthlyPayment;
private double totalPayment;