A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋美成 中级黑马   /  2014-5-8 16:50  /  1362 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 宋美成 于 2014-5-9 14:48 编辑

大家有没有发现,在Calendar中的好多方法中有关“字段”这个量都定义的是int型的变量,
比如void  add( int filed, int amount),给指定字段减去或加上某个值;

int  get(int  filed),获取相应字段的值。

问题来啦:
filed为啥定义为int型变量啊?我实际编程中一般使用的是add(c.YEAR,1),这种方式来进行相应函数功能的,字段那里我并没有输入int型的值可是功能还是实现了,这个是要怎么理解呢?

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
对于Java里面的整数的字段,如无特殊情况,一般默认都为int类型,这就好比任意一个整数,在默认的情况下为int类型一样,只有在声明时注明时,才会成为其他类型。至于那个add方法,它是将Calendar对象中的字段,也即是成员变量,进行改变,就像楼主说的将c对象中的YEAR变量的值加加,字段的类型为int,而add方法的参数类型也为int,这是吻合的。

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
最后的希冀 发表于 2014-5-8 17:54
对于Java里面的整数的字段,如无特殊情况,一般默认都为int类型,这就好比任意一个整数,在默认的情况下为i ...

您好,我是不是可以这样理解,关于“c.YEAR”这个字段,其实程序内部就已经把他定义成为了一个int型的变量?
回复 使用道具 举报
  1.     /**
  2.      * Field number for <code>get</code> and <code>set</code> indicating the
  3.      * year. This is a calendar-specific value; see subclass documentation.
  4.      */
  5.     public final static int YEAR = 1;
复制代码
这是关于Calendar类的源码,这里定义了YEAR的静态成员变量

回复 使用道具 举报
以下代码是从Calendar类中粘贴过来的
   public final static int ERA = 0;

    /**
     * Field number for <code>get</code> and <code>set</code> indicating the
     * year. This is a calendar-specific value; see subclass documentation.
     */
    public final static int YEAR = 1;
我想说的是Calendar类里定义了类似于YEAR等很多常量,
至于为什么add方法在使用的时候不直接传入1,而是使用Calendar.YEAR,个人理解是代码的阅读性强。
如果我不知道Calendar类里是怎么定义的话,那么在调用add方法时输入1就不知道会起到什么作用,相反
如果输入的是Calendar.YEAR的话,我就很清楚了。

希望对你有帮助。

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
解释的很好。很受启发
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马