如何解决我的对象数组只打印最后输入的值 java
嗨,我是 Java 编程的新手。在这里,我试图用对象数组来实现代码。问题是每当我尝试打印时。它只打印最后输入的值 10 次。
import java.util.*;
class Tax{
int ssn,income;
void Tax(){}
void Tax(int s,int i){
this.ssn=s;this.income=i;
}
int getssn(){
return ssn;
}
int getincome(){
return income;
}
}
public class Usetaxpayer{
public static void main(String[] args){
Tax[] y=new Tax[10];
int i,inc,s=100;
Scanner in=new Scanner(system.in);Tax x=new Tax();
for(i=0;i<10;i++)
{
inc=in.nextInt();y[i]=x;
x.Tax(s,inc);
s++;
}
for(i=0;i<10;i++)
{
System.out.println("SSN"+y[i].getssn()
+"income"+y[i].getincome()+"\n");
}
}
}
请帮帮我`
解决方法
您错误地将 void
用于构造函数。此外,您需要在循环内创建实例。
演示:
import java.util.Scanner;
class Tax {
int ssn,income;
Tax(int s,int i) {
this.ssn = s;
this.income = i;
}
int getssn() {
return ssn;
}
int getincome() {
return income;
}
}
public class Usetaxpayer {
public static void main(String[] args) {
final int SIZE = 2;
Tax[] y = new Tax[SIZE];
int i,inc = 0,s;
Scanner in = new Scanner(System.in);
for (i = 0; i < SIZE; i++) {
System.out.print("Enter SSN: ");
s = in.nextInt();
System.out.print("Enter income: ");
inc = in.nextInt();
y[i] = new Tax(s,inc);
}
for (i = 0; i < SIZE; i++) {
System.out.println("SSN: " + y[i].getssn() + ",income: " + y[i].getincome());
}
}
}
示例运行:
Enter SSN: 123
Enter income: 1000
Enter SSN: 234
Enter income: 2000
SSN: 123,income: 1000
SSN: 234,income: 2000
注意:我使用了一个大小为 2 的数组作为演示。根据您的要求更改 SIZE
的值。
问题是您使用一个对象 10 次并一次又一次地替换值。这仅保留最后一个值。试试这个:
process.env.REACT_APP_API_URL
,
您有两个错误:
- 声明构造函数时出错,如以下代码所示:
公共税(){}
public Tax(int s,int i){
this.ssn=s;this.income=i;
}
根据您的需要,构建器可以是公共的或私有的。
- 在执行循环并将对象 x 添加到数组时,对象 x 仅添加了相同的内存实例,添加的最佳方法如下。
Scanner in=new Scanner(System.in);
for(i=0;i<10;i++)
{
inc= in.nextInt();
y[i]= new Tax(s,inc);
s++;
}
通过这种方式,您始终可以添加一个新的 Tax 实例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。