一个简单的问题,关于Date类
编译的时候总是在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;
}
------解决方案--------------------编译出错?还是运行时出错?
在你的构造函数中:
Date _hireDay=(new GregorianCalendar(year,month-1,day)).getTime();
这句应该去掉 Date 吧?
------解决方案--------------------Date _hireDay=(new GregorianCalendar(year,month-1,day)).getTime();
已经定义过了,不需要Date了
------解决方案--------------------不去掉那个Data,就出现同名隐藏勒,类成员的那个_hireDay是
空指针,当然有异常。
------解决方案--------------------楼上的两位正确。
因为你在构造方法里又定义了一个局部的_hireDate变量,因此,它覆盖了类实例变量_hireDate,也就是说,在构造方法中并没有初始化类实例变量_hireDate,所以当你调用getHireDate时,会抛出
空指针异常。