编译的时候总是在getHireDay函数出出错,求教import java.util.GregorianCalendar;
import java.util.Date;
/**
 *
 * @author Administrator
 */
public class _Employee {    
         /** Creates a new instance of _Employee */
        public _Employee(String name, double salary, int year, int month, int day)
{
_name=name;
_salary=salary;
Date _hireDay=(new GregorianCalendar(year,month-1,day)).getTime();
}

//propertises
public String getName(){return _name;}
        public double getSalary(){return _salary;}
        public void getHireDay()
        {
            System.out.println(_hireDay.toString());
        }
               
//fields
private String _name;
private double _salary;
private Date _hireDay;

    
}

解决方案 »

  1.   

    编译出错?还是运行时出错?
    在你的构造函数中:
    Date _hireDay=(new GregorianCalendar(year,month-1,day)).getTime();
    这句应该去掉 Date 吧?
      

  2.   

    Date _hireDay=(new GregorianCalendar(year,month-1,day)).getTime();已经定义过了,不需要Date了
      

  3.   

    不去掉那个Data,就出现同名隐藏勒,类成员的那个_hireDay是空指针,当然有异常。
      

  4.   

    楼上的两位正确。
    因为你在构造方法里又定义了一个局部的_hireDate变量,因此,它覆盖了类实例变量_hireDate,也就是说,在构造方法中并没有初始化类实例变量_hireDate,所以当你调用getHireDate时,会抛出空指针异常。