我是一名初学Java程序员,我一直在阅读有关Calendar类的内容。它是一个抽象类,它的所有方法都是静态的,但使用方法如下:
Calendar cal = Calendar.getInstance();
使用cal
调用以下方法的地方:
cal.setTimeinMillis(day1);
我对此感到困惑。在针对类调用方法时,为什么我们需要一个引用变量?这对于静态方法来说是如何合法的?
答案 0 :(得分:8)
Calendar cal = Calendar.getInstance();
不是调用构造函数,它只是调用一个(静态)方法来返回某个子类(Calendar
)的实例。
答案 1 :(得分:3)
再看看the documentation;做任何有趣事情的日历的大多数方法(除了getInstance()方法)都不是静态的并且需要一个实例(它实际上是日历所代表的时刻的容器)。
答案 2 :(得分:3)
1)日历不是Calandar
2)Calendar.getInstance()
将返回日历的一些具体实现,可能是GregorianCalendar
。
3)cal.setTimeinMillis(day1);是对象方法,不是静态的。
答案 3 :(得分:1)
setTimeInMillis()不是静态的。您需要调用getInstance()方法来返回实例的原因是有几个getInstance()方法,您可以针对不同的时区和/或不同于默认值的语言环境调用它们。您选择的时区或区域设置会影响其他方法的工作方式。