import java.util.*;public class Test1
{
private Date hireDay;
public static void main(String[] args)
{
GregorianCalendar calendar = new GregorianCalendar(1991,11,9);
hireDay = calendar.getTime();
System.out.println("Hireday= " + hireDay);
}
}报错说:D:\result>javac Test1.java
Test1.java:10: 无法从静态上下文中引用非静态 变量 hireDay
hireDay = calendar.getTime();
^
Test1.java:11: 无法从静态上下文中引用非静态 变量 hireDay
System.out.println("Hireday= " + hireDay);
^
2 错误为什么呢?
刚开始学java,有点懵。谢谢。
{
private Date hireDay;
public static void main(String[] args)
{
GregorianCalendar calendar = new GregorianCalendar(1991,11,9);
hireDay = calendar.getTime();
System.out.println("Hireday= " + hireDay);
}
}报错说:D:\result>javac Test1.java
Test1.java:10: 无法从静态上下文中引用非静态 变量 hireDay
hireDay = calendar.getTime();
^
Test1.java:11: 无法从静态上下文中引用非静态 变量 hireDay
System.out.println("Hireday= " + hireDay);
^
2 错误为什么呢?
刚开始学java,有点懵。谢谢。
{
private Date hireDay;
public void setHireDay(final Date hd){hireDay = hd;}
public Date getHireDay() { return (Date)hireDay.clone();} public static void main(String[] args)
{
GregorianCalendar calendar = new GregorianCalendar(1991,11,9);
Test1 t1 = new Test1();
t1.setHireDay(calendar.getTime());
System.out.println("Hireday= " + t1.getHireDay());
}
}
import java.util.*;public class Test1
{
private Date hireDay;public void setHireDay(Date hireDay){
this.hireDay = hireDay;
}public Data getHireDay(){
return hireDay;
}public static void main(String[] args)
{
GregorianCalendar calendar = new GregorianCalendar(1991,11,9);
Test1 t = new Test1();
t.setHireDay(Hicalendar.getTime());
System.out.println("Hireday= " + t.getHireDay());
}
}
import java.util.GregorianCalendar;
import java.util.Date;
class Test1
{
private Date hireDay;//还是写个公有的方法吧
public Date gethireDay()
{
return this.hireDay;
}
public void sethireDay(Date d)
{
this.hireDay=d;
}
}
public class Ansewer09
{
public static void main(String[] args)
{
GregorianCalendar calendar = new GregorianCalendar(1991,11-1,9);
Test1 t=new Test1();
t.sethireDay(calendar.getTime());
System.out.println("Hireday= " +(t.gethireDay()).toString());
}
}
如果你在静态方法中使用了非静态的变量,JVM不知道它是哪个对象的变量,所以会报错。
也就是说非静态的成员变量是对象的属性,它是跟某个对象紧紧绑定起来的,访问的时候必须通过对象来访问,没有对象就不能访问它的非静态成员变量。
变为private static Date hireDay;