当前位置:  技术问答>java相关

关于 Calendar

    来源: 互联网  发布时间:2015-04-19

    本文导语:  先看看下面的这段代码,我是从DW上抄来的: import java.io.*; import java.util.*; public class WhatIsCalendar {    public static void main(String[] args) {         Calendar calendar = Calendar.getInstance();         if (calendar ins...

先看看下面的这段代码,我是从DW上抄来的:

import java.io.*;
import java.util.*;

public class WhatIsCalendar {

   public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        if (calendar instanceof GregorianCalendar)
            System.out.println("It is an instance of GregorianCalendar");
   }
}

编译运行通过。
可是小弟就是不明白:
GregorianCalendar 是由 Calendar 派生出来的,也就是说,在写作 Calendar 时,GregorianCalendar 还没有的。那 Calendar.getInstance() 怎么可以生成得到一个子类来返回呢?

如果 Calendar.getInstance() 返回的只是一个 Calendar ,那么 Calendar 是一个abstract class ,又怎么可以实例化呢?

|
Calendar中的源代码:
    /**
     * Gets a calendar using the default time zone and locale.
     * @return a Calendar.
     */
    public static synchronized Calendar getInstance()
    {
        return new GregorianCalendar();
    }

|
getInstance() 返回的应该是Calendar 的子类。

|
Calendar是一个abstract Class,但是在程序中并没有进行显式进行实例化,程序只是通过getIntance返回,实际上返回的并不是真正的Calendar对象
所以并没有问题。

|
getInstance()返回的对象为java.util.GregorianCalendar是Calendar的子类

|
定义一个句柄不代表实例化,察看Calenar源代码就可以看到实例化的是 new GregorianCalendar(zone, aLocale);
编程时间多了,自然会明白的。

|

对头,关键是看getInstance方法的实现,如果它返回的就是一个GregorianCalendar,什么问题不都解决了吗?

所以你看一个Calendar的源码,看这个方法到底是如何实现的,不就明白了吗?

|
先看书(OO),再问

|
类里使用自己或者子类都没有问题啊。
写过链表吗?

|
getInstance()
get a Calendar using the default time zone and locale.
return a Calendar.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.util类calendar的类成员方法: calendar定义及介绍
  • 新手提问,为什么我import java.util.Calendar;后,Calendar c=new Calendar.getInstance();却抱错呢??谢谢
  • java命名空间java.text类dateformat的类成员方法: calendar定义及介绍
  • 打印今天的日期,我用Calendar c=Calendar.getInstance();直接打印,和用c.set(2002,10,11)得到不同的结果,请问是什么意思??
  • java命名空间java.util类calendar的类成员方法: compareto定义及介绍
  • 关于Calendar 的很简单的问题?
  • java命名空间java.util类calendar的类成员方法: getinstance定义及介绍
  • 基于Web的日程安排软件 PHP-Calendar
  • java命名空间java.util类calendar的类成员方法: arefieldsset定义及介绍
  • Calendar问题,为什么月份总是少一个月?
  • java命名空间java.util类calendar的类成员方法: before定义及介绍
  • Prototype Calendar
  • java命名空间java.util类calendar的类成员方法: after定义及介绍
  • Calendar 類 的 getDate 為甚麼不正確 ?
  • java命名空间java.util类calendar的类成员方法: roll定义及介绍
  • ZK Calendar
  • java命名空间java.util类calendar的类成员方法: gettimeinmillis定义及介绍
  • 关于calendar的问题
  • java命名空间java.util类calendar的类成员方法: clear定义及介绍
  • 开源日历组件 Cubedrive Calendar
  • java命名空间java.util类calendar的类成员方法: equals定义及介绍
  • jQuery Frontier Calendar


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3