+ -
当前位置:首页 → 问答吧 → 初学求解

初学求解

时间:2011-09-28

来源:互联网

public final class Month2 {
private String name;
private Month2(String nm) { name=nm;}
public String toString() {return name;}
public final static Month2
JAN=new Month2("January"),
FEB=new Month2("February"),
MAR=new Month2("March"),
APR=new Month2("April"),
MAY=new Month2("May"),
JUN=new Month2("June"),
JUL=new Month2("July"),
AUG=new Month2("August"),
SEP=new Month2("September"),
OCT=new Month2("October"),
NOV=new Month2("November"),
DEC=new Month2("December");
public final static Month2[] month={
JAN,JAN,FEB,MAR,APR,MAY,JUN,
JUL,AUG,SEP,OCT,NOV,DEC};
public static void main(String[]args) {
Month2 m= Month2.JAN;
System.out.println(m);
m=Month2.month[12];
System.out.println(m);
System.out.println(m==Month2.DEC);
System.out.println(m.equals(Month2.DEC));
}
}
为什么能输出“January”和“November”?

作者: ypf222   发布时间: 2011-09-28

我都要问楼主怎么会有November输出的,不是应该December么。
这个程序貌似复杂,但很多花架子:定义了好多的Month2对象,然后
定义了一个Month2类型的数组来存放这些对象。
涉及到了数组的下标问题、==和equals的区别。
PS:由于这里没有自己复写equals方法,故默认的话equals和==是
等效的,都是判断引用的地址是否相等,而不是它们所执行的对象。

作者: dengxiayehu   发布时间: 2011-09-28

热门下载

更多