Calendar 是抽象类,里面有抽象方法public abstract void add(int field, int amount) 。
没有办法通过new方法创建实例,是可以通过getInstance() 获取一个实例(也是Calendar类型)。不明白California的代码中没有实现public abstract void add(int field, int amount)方法。但是Calendar 实例可以调用该方法。
也就是下面的代码可以成立:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 1); // jdk代码中没有实现该方法,怎么可以调用
=============================================
请大家指教一下,谢谢
没有办法通过new方法创建实例,是可以通过getInstance() 获取一个实例(也是Calendar类型)。不明白California的代码中没有实现public abstract void add(int field, int amount)方法。但是Calendar 实例可以调用该方法。
也就是下面的代码可以成立:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 1); // jdk代码中没有实现该方法,怎么可以调用
=============================================
请大家指教一下,谢谢
解决方案 »
- log4j,${catalina.home}是在哪定义的?
- 一个小问题,有情绪的帮忙看看!
- jxl的一个BUG还是 还是有其他写法
- 生成word文档中文显示
- 请各位老大,指点,救命2个问题,高分回报
- 关于线程的一点思考:为什么java.sql.Statement.executeUpdate()不声明为同步的呢?那样怎么能保证多个线程同时修改表的记录呢?
- 我是新手
- 请问怎样在聊天室中实现传送文件?
- 问个巨菜的问题,呵呵:)初学者......
- 怎么样才能不通过jdbc-odbc直接连到数据库,以sql7为例。
- 请各位大侠帮帮忙,小弟感激不尽. java基础(关于子类和父类)
- 如何修改Graphics的背景色??
Calendar类中的getInstance()方法的源代码为:
public static Calendar getInstance()
{
Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault());
cal.sharedZone = true;
return cal;
}
通过createCalendar创造的Calendar对象cal已经实现了add()方法
List list=new ArrayList();你见过吧?
为什么这样定义?因为List是一个接口,有很多实现类 我们需要Arraylist的一些性质 当然要new它的对象当然你问的跟这个情况不大一样,我就是希望给你点提示
谢谢你的回答,不过我不认为是这样的。在看Calendar类的源码的时候,并没有任何实现该方法的代码。我一开始猜该类应该和虚拟机相关的。就像Serialize这样的接口。不过这肯定不对
谢谢你的关注,你上面说的就是接口编程。ArrayList已经实现了List定义的抽象方法。看看jdk文档就清楚了。我不知道是不是虚拟机会不会对这个类做了那些动作
谢谢这位mm的关注。不过jdk文档上说的明明白白,返回的就是Calendar 见 static Calendar getInstance() 使用默认时区和语言环境获得一个日历。 并没有返回格林日历 GregorianCalendar 这个类。这个类倒是实现了add()方法。
祝mm情人节快乐
Locale aLocale)
{
// If the specified locale is a Thai locale, returns a BuddhistCalendar
// instance.
if ("th".equals(aLocale.getLanguage())
&& ("TH".equals(aLocale.getCountry()))) {
return new sun.util.BuddhistCalendar(zone, aLocale);
} // else create the default calendar
return new GregorianCalendar(zone, aLocale);
}
接着你就应该再去看sun.util.BuddhistCalendar和GregorianCalendar的源码,以此类推,总会找到实现了add()方法