首先创建一个Employee类:importjava.util.Date;importjava.util.GregorianCalendar;classEmployee{privateStringname;privatedoublesalary;privateDatehireDay;publicEmployee(){}pu...
首先创建一个Employee类:
import java.util.Date;
import java.util.GregorianCalendar;
class Employee {
private String name;
private double salary;
private Date hireDay;
public Employee() {
}
public Employee(String name, double salary, int year, int month, int day) {
this.name = name;
this.salary = salary;
GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
hireDay = calendar.getTime();
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public Date getHireDay() {
return hireDay;
}
public void setName(String name) {
this.name = name;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void setHireDay(int year, int month, int day) {
GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
this.hireDay = calendar.getTime();
}
public void raiseSalary(double byPercent) {
double raise = salary * byPercent / 100;
salary += raise;
}
}
然后创建它的测试类:
public class EmployeeTest {
public static void main(String[] args) {
// fill the staff array with three Employee objects
Employee[] staff = new Employee[4];
staff[0] = new Employee("Carl Cracker", 75000, 1987, 12, 15);
staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15);
staff[3].setName("Tom");
staff[3].setSalary(10000);
staff[3].setHireDay(1984, 7, 31);
for (Employee e : staff)
e.raiseSalary(5);
for (Employee e : staff)
System.out.println("name=" + e.getName() + ",salary="
+ e.getSalary() + ",hireDay=" + e.getHireDay());
}
}
运行时候报staff[3].setName("Tom");这行空指针异常,请问这是为什么?如何修改
展开