黑马程序员技术交流社区
标题:
关于Calendar通过方法调用创建对象的疑惑
[打印本页]
作者:
Mydream524
时间:
2015-1-1 11:43
标题:
关于Calendar通过方法调用创建对象的疑惑
import java.util.Calendar;
Calendar c = Calendar.getInstance();
public static Calendar getInstance(TimeZone zone,
Locale aLocale)
{
return createCalendar(zone, aLocale);
}
private static Calendar createCalendar(TimeZone zone,
Locale aLocale)
{
Calendar cal = null;
String caltype = aLocale.getUnicodeLocaleType("ca");
if (caltype == null) {
// Calendar type is not specified.
// If the specified locale is a Thai locale,
// returns a BuddhistCalendar instance.
if ("th".equals(aLocale.getLanguage())
&& ("TH".equals(aLocale.getCountry()))) {
cal = new BuddhistCalendar(zone, aLocale);
} else {
cal = new GregorianCalendar(zone, aLocale);
}
} else if (caltype.equals("japanese")) {
cal = new JapaneseImperialCalendar(zone, aLocale);
} else if (caltype.equals("buddhist")) {
cal = new BuddhistCalendar(zone, aLocale);
} else {
// Unsupported calendar type.
// Use Gregorian calendar as a fallback.
cal = new GregorianCalendar(zone, aLocale);
}
return cal;
}
复制代码
我们在使用Calendar的时候导入了,java.util.Calendar;这个类 但是没有导入java.util.GregorianCalendar;这个类, 但是我们可以创建它的对象。
没有子类的类,我们可以创建它的对象么。
这时为什么呢,还是说,我们导入java.util.Calendar; 这个下面就包括了java.util.GregorianCalendar;
希望坛友能够给予解惑。
作者:
常强儿
时间:
2015-1-1 23:11
你确认没有引入这个类就直接使用了???粘的这些代码体现不出来啊
作者:
jacoblx
时间:
2015-1-2 05:02
本帖最后由 jacoblx 于 2015-1-2 05:04 编辑
就在你粘的这段代码的class文件是属于java.util包里的,调用同包下的GregorianCalendar不用导包
你自己的类是通过Calendar的工厂方法来创建GregorianCalendar对象的,也就是说通过Calendar的方法,这个方法是在java.util.Calendar中定义的,而Calendar中使用GregorianCalendar不需要导包(因为在同一个包下)。
如果你需要直接
new
GregorianCalendar对象,则必须导入GregorianCalendar包。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2