Я пытаюсь написать программу, в которой о зарплатах сотрудников и других сотрудниках у меня есть абстрактный суперкласс под названием Employee, а затем следующие FullTimeEmployee, PartTimeEmployee, Orders и Salesman являются подклассами Employee.У меня только одна проблема с нулевыми указателями в Продавце, где я пытаюсь рассчитать бонус, который они получат за каждую продажу.
Вот мой код в классе Продавца
public Salesman(String firstname, String lastname,int code, String address, String city,int tk,int phone,String email,int deptcode,int card,double hours,String cat,int orderno,double salary,Orders[] ord/*,double sales*/){
super( firstname, lastname, code, address, city, tk, phone, email, deptcode, card, hours, cat );
this.orderno=orderno;
setBaseSalary( salary );
//setGrossSales( sales );
Orders[] order= ord.clone();//new Orders[orderno];//create the array for the orders made by this salesman
//order=ord;
setSallary(order );
}
public void setSallary( Orders[] order ){
//double sum=0;
for(int i=0;i<=order.length;) {
grossSales+=order[i++].getamount(); //get the value of the sales done
System.out.println(grossSales);
}
if (grossSales<10000 ){
baseSalary+=baseSalary*0.05;
}
else if((grossSales>=10000)||(grossSales<=20000)){
baseSalary+=baseSalary*0.07;
}
else
baseSalary+=baseSalary*0.1;
}
в основном яЯ
Orders[] array=new Orders[20];
array[0]=new Orders(1,"14/5/2010","agora aftolinitwn",2000.0);
array[1]=new Orders(2,"14/5/2010","agora aftolinitwn",20000.0);
Salesman sales1 =new Salesman("giannis", "antoniou",35, "vavilonos 7", "leffkosia",11475,69486931,"gäntoniou@hotmail.com",100,40,160.0,"salesman",2,1300.0,array);
Salesman sales2 =new Salesman("andreas", "antoniou",35, "vavilonos 7", "lefkosia",11475,69486931,"äntonioua@hotmail.com",100,41,160.0,"salesman",1,1200.0,array);
в основном то, что я делаю, это создание массива с информацией о salsmans (сумма, полученная от продажи и т. д.), а затем отправка его в конструктор Saleman.Затем я копирую содержимое массива в другой массив, чтобы попытаться рассчитать бонус.но я получаю
Исключение в потоке "main" java.lang.NullPointerException
at misthodosia.Salesman.setSallary(Salesman.java:36)
at misthodosia.Salesman.<init>(Salesman.java:28)
at misthodosia.Misthodosia.main(Misthodosia.java:30)
Результат Java: 1
вот класс Orders какхорошо
public class Orders {
private int orderNo;
private String orderDate;
private String description;
private double orderAmount;
private Salesman man;
public Orders(int no,String date,String descrip,double amount/*,Salesman man*/){
orderNo=no;
orderDate=date;
description=descrip;
orderAmount=amount;
//this.man=man;
//Orders[] orders=new Orders[orderNo];//create the array for the orders made by this salesman
}
public double getamount(){
return orderAmount;
}
}
Вы можете мне помочь ??Я знаю, что делаю что-то не так с массивом объектов, но не могу понять: S