再会!
我有点困惑。我想使用日历,所以我在互联网上搜索它并遇到以下代码:
Ca1endar c = Calendar.getlnstance();
c.set(2011,2, 5,1,25);
但我了解到这是一个静态方法:
Calendar.getlnstance();
如果调用的方法是静态的,为什么我可以获得日历(抽象类)的实例?
我真的很想了解它。所以下次我也可以创建一个可以创建实例的静态方法。
谢谢。
这是静态工厂方法。这个想法是方法是调用构造函数的方法,并且它返回构造的对象。
的身体Calendar.getInstance()
也许是这样的:
return new SomeCalendar(now);
where SomeCalender
是一个具体的实现抽象类 Calendar
。一些优点是:您不必关心底层类(只要您知道它只是一个日历),并且底层实现可以更改而不影响您(例如,代码可以更改为return new AnotherCalendar()
并且您不必更改代码中的任何内容)
由于它是静态方法,因此您可以在类型本身上调用它(Calendar.getInstance();
)而不是该类型的实例(Calendar c = ...; c.getInstance();
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)