微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的对象数组只打印最后输入的值 java

如何解决我的对象数组只打印最后输入的值 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
,

您有两个错误:

  1. 声明构造函数时出错,如以下代码所示:

公共税(){}

public Tax(int s,int i){
 this.ssn=s;this.income=i;
}

根据您的需要,构建器可以是公共的或私有的。

  1. 在执行循环并将对象 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?