[英]My array of objects only printing last entered value 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
的值。
問題是您使用一個 object 10 次並一次又一次地替換這些值。 這僅保留最后一個值。 試試這個:
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 Main{
public static void main(String[] args){
Tax[] y=new Tax[10];
int i,inc,s=100;
Scanner in=new Scanner(System.in);
for(i=0;i<10;i++)
{
Tax x=new Tax();
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");
}
}
}
你有兩個錯誤:
公共稅(){}
public Tax(int s, int i){ this.ssn=s;this.income=i; }
根據您的需要,構建器可以是公共的或私有的。
Scanner in=new Scanner(System.in); for(i=0;i<10;i++) { inc= in.nextInt(); y[i]= new Tax(s,inc); s++; }
這樣你總是添加一個新的 Tax 實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.