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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一个人旅行 中级黑马   /  2013-12-24 23:35  /  1395 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类 Calendar下的字段摘要里的内容都是什么怎么用的?
比如DATE,查定义是public final static int DATE = 5;
DATE它是常量么?那么像下面一样带入有什么意义?
c.set(2013, 2, 1);
c.add(Calendar.DATE, -1);
System.out.println(c.get(Calendar.DATE));//28

既然DATE=5,那么可以看成c.add(Calendar.5, -1),这有什么用呢?
下面的输出语句有该怎么去理解,完全思想一片混乱啊,什么是字段啊。。。那里除了DATE,还有好多啊,新手求指教。。。

评分

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

查看全部评分

3 个回复

倒序浏览
public final static int DATE = 5;
字段就是为了不让后面改变的值,如果你在那个位置一个数字可是不是任何人都可以改变?
但是你放一个变量,人家向要改变,就需要改变这个变量的值,而这个变量你又设定了final类型
被final所修饰的值是常量,不可以被改变,这样就确保不可以被后面的人改变了。
回复 使用道具 举报
public final static int DATE = 5;这是SQL包下的,Calendar是util 包的  你找错了
回复 使用道具 举报
Calendar 中的静态常量一般起到标识的作用,有两个最典型的方法,这是它们的声明:
  1. void set(int field, int value);
  2. int get(int field);
复制代码

其中的 field 值就需要使用作为标识的静态常量,比如 get(Calendar.YEAR) 得到的是当前 Calendar 对象表示的年份, set(Calendar.MONTH, Calendar.DECEMBER) 就是将当前 Calendar 对象的月份设置为12月。相比直接使用整数值,这种方式显然增加了程序的可读性,而且这种标识更加容易使用。至于每个标识对应的具体整数值,是类库实现者所关心的,使用时不需要知道它们的值(这些值并没有实际的意义,只是实现程序逻辑的需要)。

但需要注意同样作为静态常量的 Calendar.DECEMBER, Calendar.FRIDAY 等,它们的值和实际的意义是有对应关系的,但这种关系和我们日常所习惯的关系可能会有出入,比如月份的值是从0开始的,工作日(DAY_OF_WEEK) 的值是以周日为第一天(即 Calendar.SUNDAY 对应的值为1)开始计算的。因此在使用过程中最好尽量使用静态常量,而不是直接使用整数值。

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马