class Month2
{
private String name;
private Month2(String nm)
{
name=nm;
}
public String tostring()
{
return name;
}
//静态常量
public final static Month2 JAN=new Month2("January");
public final static Month2 FEB=new Month2("Febuary");
public final static Month2 MAR=new Month2("March");
public final static Month2 APR=new Month2("April");
public final static Month2 MAY=new Month2("May");
public final static Month2 JUNE=new Month2("June");
public final static Month2 JULY=new Month2("July");
public final static Month2 AUG=new Month2("August");
public final static Month2 SEP=new Month2("Sprtember");
public final static Month2 OCT=new Month2("Octobor");
public final static Month2 NOV=new Month2("November");
public final static Month2 DEC=new Month2("December");
public final static Month2 [] months={JAN,JAN,FEB,MAR,APR,MAY,JUNE,JULY,AUG,SEP,OCT,NOV,DEC};
}
class Month_Cal
{
public static void main(String [] args)
{
System.out.println(Month2.months[5]);
}
}
编译通过,执行错误
加上TOSTRING()后正常,为何
{
private String name;
private Month2(String nm)
{
name=nm;
}
public String tostring()
{
return name;
}
//静态常量
public final static Month2 JAN=new Month2("January");
public final static Month2 FEB=new Month2("Febuary");
public final static Month2 MAR=new Month2("March");
public final static Month2 APR=new Month2("April");
public final static Month2 MAY=new Month2("May");
public final static Month2 JUNE=new Month2("June");
public final static Month2 JULY=new Month2("July");
public final static Month2 AUG=new Month2("August");
public final static Month2 SEP=new Month2("Sprtember");
public final static Month2 OCT=new Month2("Octobor");
public final static Month2 NOV=new Month2("November");
public final static Month2 DEC=new Month2("December");
public final static Month2 [] months={JAN,JAN,FEB,MAR,APR,MAY,JUNE,JULY,AUG,SEP,OCT,NOV,DEC};
}
class Month_Cal
{
public static void main(String [] args)
{
System.out.println(Month2.months[5]);
}
}
编译通过,执行错误
加上TOSTRING()后正常,为何
哪里加上TOSTRING()?
{
return name;
}
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
原型中看到的 类名 + @ + 十六进制数字表示的该对象的散列码覆盖以后运行自己的。
所以要加上toString
你显示出来的应该是个类型!
你自己做的那个tostring()方法才是显示其内容的!