给我的指令如下:创建一个名为Salesperson的类。Salesperson的数据字段包括一个整数ID号和一个双年度销售额。方法包括一个构造函数,该构造函数需要两个数据字段的值,以及每个数据字段的get和set方法。
编写一个名为DemoSalesperson的应用程序,声明一个由10个Salesperson对象组成的数组。
将每个ID号设置为9999,将每个销售值设置为零。
显示10个销售人员对象。将文件保存为Salesperson.java和DemoSalesper.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;}
}
我不确定我做错了什么,但在编译时,程序给了我一个错误,上面写着"线程中的异常"main"java.lang.NullPointerException at SalespersonDemo.main(SalespersonDemon.java:13)。"
如果有人对我做错了什么以及如何解决问题有任何建议,我将不胜感激
为了完成这个项目,我试着用一种可以很容易地回去编辑SalespersonDemo的方式编写这个程序,因为第二部分要求我为每个编号为111-120的销售人员分配身份证号码,销售金额在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 = new Salesperson[NUM_PERSON];
数组添加任何Salesperson
,它只有10个null
元素。