Java 我需要帮助写一个应用程序,分配ID的和销售金额的销售人员

Java 我需要帮助写一个应用程序,分配ID的和销售金额的销售人员,java,arrays,methods,constructor,Java,Arrays,Methods,Constructor,我得到的指示如下: 创建一个名为Salesperson的类。Salesperson的数据字段包括整数ID号和双年度销售额。方法包括一个构造函数,该构造函数需要两个数据字段的值,以及每个数据字段的get和set方法 编写一个名为DemoSalesperson的应用程序,该应用程序声明一个包含10个Salesperson对象的数组 将每个ID号设置为9999,将每个销售值设置为零 显示10个Salesperson对象。将文件另存为saleperson.java和demosaleperson.java

我得到的指示如下: 创建一个名为Salesperson的类。Salesperson的数据字段包括整数ID号和双年度销售额。方法包括一个构造函数,该构造函数需要两个数据字段的值,以及每个数据字段的get和set方法

编写一个名为DemoSalesperson的应用程序,该应用程序声明一个包含10个Salesperson对象的数组

将每个ID号设置为9999,将每个销售值设置为零

显示10个Salesperson对象。将文件另存为saleperson.java和demosaleperson.java

我的代码如下:

public class Salesperson{
private int idNumber;
private double salesAmount;

    public Salesperson(int idNum, double salesAmnt){
        idNumber = idNum;
        salesAmount = salesAmnt;
    }

    public int getIdNumber(){
        return idNumber;
    }

    public void setIdNumber(int idNum){
        idNumber = idNum;
    }

    public double getSalesAmount(){
        return salesAmount;
    }

    public void setSalesAmount(double salesAmnt){
        salesAmount = salesAmnt;
    }
}
我相信这一点是正确的。我认为我遇到的问题存在于使用此信息的程序中:

public class SalespersonDemo{
public static void main(String[] args){
    final int NUM_PERSON = 10;
    final double TOTAL_SALES = 10;
    int x = 0;
    double y = 0.0;
    Salesperson[] id = new Salesperson[NUM_PERSON];
    Salesperson saleperson = new Salesperson(x, y);

    getSalesAssociateInfo(id);

    for(x = 0; x < NUM_PERSON; ++x){
        System.out.println("Amount sold by associate " + id[x].getIdNumber() + " :");
        for(y = 0; y < TOTAL_SALES; ++y)
            System.out.print(id[x].getSalesAmount());
            System.out.println();
    }

}
public static void getSalesAssociateInfo(Salesperson[] id){
    final int NUM_PERSON = 10;
    final double TOTAL_SALES = 10;
    int x = 9999;
    double y = 0;}
} 
我不确定我做错了什么,但在编译程序时,程序给了我一个错误,在salersondemo.mainsalersondemo.java:13的线程main java.lang.NullPointerException中显示Exception

如果有人对我做错了什么以及如何改正有任何建议,我将非常感激

为了完成这个项目,我试着以一种我可以轻松返回并在以后编辑SalesorSondemo的方式编写这个程序,因为第二部分要求我为每个编号为111-120的销售人员分配ID号,销售金额在20000-70000之间,每一个连续的销售人员增加5000人。如果你能给我一些关于完成这部分问题的建议,我将不胜感激。 编辑:我尝试更改getSalesAssociateInfo方法,试图为我的id数组分配一个特定的数字。这就是我现在拥有的:

    public static void getSalesAssociateInfo(Salesperson[] id){
    final int NUM_PERSON = 10;
    final double TOTAL_SALES_AMOUNT = 10;
    int x ;
    double y;
    for(x = 0; x < NUM_PERSON; ++x){
        id[x] = new Salesperson(9999, 0);
        id[x].setIdNumber(x);
        for(y = 0; y < TOTAL_SALES_AMOUNT; ++y)
            id[x].setSalesAmount(y);
    }
}
结果是,我不再得到空指针异常错误,但销售人员不会显示为9999,销售金额看起来很可笑09.09.09.09。。。 我现在开始觉得自己很傻了

编辑2:好的,稍微修改一下程序,我得到了我想要的结果,但我不确定代码中的逻辑是否合理。任何提示都将不胜感激,但以下是代码:

public class SalespersonDemo{
public static void main(String[] args){
    final int NUM_PERSON = 10;
    final int SALES_AMOUNT= 1;
    double totalSales = 0;
    int x = 0;
    double y = 0.0;
    Salesperson[] id = new Salesperson[NUM_PERSON];
    Salesperson saleperson = new Salesperson(x, y);

    getSalesAssociateInfo(id);

    for(x = 0; x < NUM_PERSON; ++x){
        System.out.println("Amount sold by associate " + id[x].getIdNumber() + ":");
        for(y = 0; y < SALES_AMOUNT; ++y)
            System.out.print(id[x].getSalesAmount());
            System.out.println();

    }

}
    public static void getSalesAssociateInfo(Salesperson[] id){
        final int NUM_PERSON = 10;
        final int SALES_AMOUNT = 0;
        double totalSales = 1;
        int x = 0;
        double y = 0.0;
        for(x = 0; x < NUM_PERSON; ++x){
            id[x] = new Salesperson(x, y);
            id[x].setIdNumber(9999);
            for(y = 0; y < SALES_AMOUNT ; ++y)
                totalSales = 0;
                id[x].setSalesAmount(y);

       }
   }
}
再次,如果我的问题不清楚,或者我是一个业余爱好者,我想道歉。我将阅读本文中链接的所有线程,并对代码进行调整。当我对结果感到满意时,如果到我有一个合适的答案时,还没有合适的答案,我会自己回答这个问题。我仍然需要弄清楚如何将ID设置为从111开始到120结束,销售值必须从25000开始,每个销售人员增加5000

编辑3:这是我的最终代码。我希望得到一些反馈。无论如何,感谢所有帮助解决这个问题的人

public class DemoSalesperson2{
public static void main(String[] args){
    final int NUM_PERSON = 10;
    final int SALES_AMOUNT= 1;
    int x = 0;
    double y = 0;
    Salesperson[] id = new Salesperson[NUM_PERSON];
    Salesperson saleperson = new Salesperson(x, y);

    getSalesAssociateInfo(id);

    for(x = 0; x < NUM_PERSON; ++x){
        System.out.println("Amount sold by associate " + id[x].getIdNumber() + ":");
        for(y = 0; y < SALES_AMOUNT; ++y)
            System.out.print(id[x].getSalesAmount());
            System.out.println();

    }

}
public static void getSalesAssociateInfo(Salesperson[] id){
    final int NUM_PERSON = 10;
    final int SALES_AMOUNT = 1;
    int ident[] = {111, 112, 113, 114, 115, 116, 117, 118, 119, 120};
    double amnt[] = {25000, 30000, 35000, 40000, 45000, 50000, 55000, 60000, 65000, 70000};
    int x;
    double y = 0;
        for(x = 0; x < NUM_PERSON; ++x){
            id[x] = new Salesperson(x, y); 
            id[x].setIdNumber(ident[x]);
            for(y = 0; y < SALES_AMOUNT ; ++y)
                id[x].setSalesAmount(amnt[x]);

        }
    }
}

您从未向Salesperson[]id=新销售人员[NUM_PERSON]添加任何销售人员;数组,它只有10个空元素。

read:您永远不会初始化id数组在我尝试初始化id数组时,我更改了getSalesAssociateInfo方法。我不太确定我是否在正确的轨道上,但它实际上现在正在运行程序。但你们是对的,因为销售人员显示为0-9,当他们都需要9999时,我会编辑我的问题以显示我的代码