首页 > 解决方案 > 我的对象数组只打印最后输入的值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");
         }
     }
}

请帮帮我`

标签: javaclassobjectstatic

解决方案


您错误地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根据您的要求更改值。


推荐阅读