thinking in java中的代码,我把name字符串改为了static类型,
public final class Month{
private static String name;
private Month(String nm){
name=nm;
}
public String toString(){
return name;
}
public static final Month
JAN=new Month("January"),
FEB=new Month("February"),
MAR=new Month("March"),
APR=new Month("April"),
MAY=new Month("May"),
JUN=new Month("June"),
JUL=new Month("July"),
AUG=new Month("August"),
SEP=new Month("September"),
OCT=new Month("Octber"),
NOV=new Month("November"),
DEC=new Month("December");
public static final Month[] month={
JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
};
public static final Month number(int ord){
return month[ord-1];
}
public static void main(String[] args){
Month m=Month.JAN;
System.out.println(m);
Month n=Month.number(12);
System.out.println(n);
System.out.println(Month.JAN);
}
}
输出是
December
December
December
为什么最后一个还是输出“December”,调用构造器不是应该更改name 的值吗?
请解惑。。