public class company {

static employee intArray[] = null;
static int i = 0;

static void  insertAemployee(employee A){
intArray[i] = A;
i ++;
}

void deleteAemployee(String name){
for(int m = 0;m < i; m ++){
while(intArray[m].name == name){
intArray[m] = null;
}
}
}

void showPay(String name){
double salary = 0;
for(int m = 0;m < i; m ++){
while(intArray[m].name == name){
salary = intArray[m].countPay(intArray[m]);
}
}

System.out.println("员工" + name + "的工资为:" + salary);
}


static void showAllpay(company A){
double allSalary = 0;
for(int m = 0;m < i; m ++){
allSalary = allSalary + intArray[m].countPay(intArray[m]);
}
System.out.println("所有员工的工资和为:" + allSalary);

}

public static void main(String[] args) {

company company1 = new company(); 
employee hourEmployee1 =  new hourEmployee(200,10);
employee hourEmployee2 =  new hourEmployee(230,10);
employee sellEmployee1 =  new sellEmployee(5000);
employee sellEmployee2 = new sellEmployee(200000);
employee commonEmployee1 = new commonEmployee(205);
insertAemployee(hourEmployee1);
insertAemployee(hourEmployee2);
insertAemployee(sellEmployee1);
insertAemployee(sellEmployee2);
insertAemployee(commonEmployee1);
showAllpay(company1);


employee headgearEmployee1 = new headgearEmployee(30);
insertAemployee(headgearEmployee1);
showAllpay(company1);
}
}

解决方案 »

  1.   

    运行后出现
    Exception in thread "main" java.lang.NullPointerException
    at company.insertAemployee(company.java:8)
    at company.main(company.java:51)怎么解决。
      

  2.   

    static employee intArray[] = new employee[1000];
      

  3.   

    初始化后运行下面报错。。
    allSalary = allSalary + intArray[m].countPay(intArray[m]);
      

  4.   

    初始化数组 public class company {

    static employee intArray[] = null;

    static int i = 0;

    static void  insertAemployee(employee A){

    intArray[i] = A;
    i ++;
    }

    void deleteAemployee(String name){
    for(int m = 0;m < i; m ++){
    while(intArray[m].name == name){
    intArray[m] = null;
    }
    }
    }

    void showPay(String name){
    double salary = 0;
    for(int m = 0;m < i; m ++){
    while(intArray[m].name == name){
    salary = intArray[m].countPay(intArray[m]);
    }
    }

    System.out.println("员工" + name + "的工资为:" + salary);
    }


    static void showAllpay(company A){
    double allSalary = 0;

    for(int m = 0;m < i+1; m ++){
    if(intArray[m] != null)
    allSalary = allSalary + intArray[m].countPay(intArray[m]);
    }
    System.out.println("所有员工的工资和为:" + allSalary);

    }

    public static void main(String[] args) {

    company company1 = new company(); 
    employee intArray[] = new employee[1000];
    employee hourEmployee1 =  new hourEmployee(200,10);
    employee hourEmployee2 =  new hourEmployee(230,10);
    employee sellEmployee1 =  new sellEmployee(5000);
    employee sellEmployee2 = new sellEmployee(200000);
    employee commonEmployee1 = new commonEmployee(205);
    insertAemployee(hourEmployee1);
    insertAemployee(hourEmployee2);
    insertAemployee(sellEmployee1);
    insertAemployee(sellEmployee2);
    insertAemployee(commonEmployee1);
    showAllpay(company1);


    employee headgearEmployee1 = new headgearEmployee(30);
    insertAemployee(headgearEmployee1);
    showAllpay(company1);
    }
    }
      

  5.   

    肯定啊 
    你的 employee intArray[] = null;
    都没有在任何地方初始化。
      

  6.   

        static employee intArray[] = null;你声明的是一个空数组,却用在后面用它在后面程序中装东西(employee),
    还有        employee hourEmployee1 =  new hourEmployee(200,10);
            employee hourEmployee2 =  new hourEmployee(230,10);        
            employee sellEmployee1 =  new sellEmployee(5000);
            employee sellEmployee2 = new sellEmployee(200000);
            employee commonEmployee1 = new commonEmployee(205);这里的这些类型是什么?自定义的 employee父类  hourEmployee等子类的类型说明文件了,没有这些文件没有办法编译的,无法解析类型,当然我们这些人也就有心无力了