一、对象与对象变量
要想使用对象,就必须首先构造对象,并指定其初始状态。然后,对对象应用方法。
构造器是一种特殊的方法,用来构造并初始化对象。
★ 一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。
对象与对象变量之间存在着一个重要的区别,例如:
Date deadline
定义了一个对象变量deadline,它可以引用Date类型的对象。但是,变量deadline不是一个对象,实际上也没有引用对象。
此时,不能将任何Date 方法应用于这个变量上。
在Java中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用。
★ 必须首先初始化变量deadline,可以用新构造的对象初始化这个变量:
deadline = new Date();
表达式new Date()构造了一个Date类型的对象,并且它的值是对新创建对象的引用。这个引用存储在变量deadline中。
可以显式地将对象变量设置为null,标明这个对象变量目前没有引用任何对象。
如果将一个方法应用于一个值为null的对象上,那么就会产生运行错误。
局部变量不会自动地初始化为null,而必须通过调用new或将它们设置为null进行初始化。
二、Java类库中的GregorianCalendar类
类库设计者决定将保存时间与给时间点命名分开。所以标准Java类库分别包含两个类:
一个是用来表示时间点的Date类;
另一个是用来表示大家熟悉的日历表示法的GregorianCalendar类。
GregorianCalendar类所包含的方法要比Date类多得多,特别是有几个很有用的构造器。
表达式
new GregorianCalendar()
构造一个新对象,用于表示对象构造时的日期和时间。
另外还可以通过提供年、月、日构造一个表示某个特定日期午夜的日历对象:
new GregorianCalendar(2016,11,31)
月份是从0开始计数的,所以11表示十二月。也可以使用常量。
如:Calendar.DECEMBER。
new GergorianCalendar (2016,Calendar.DECEMBER,31)
还可以设置时间:
new GregorianCalendar(2016,Calendar.DECEMBER,31,23,59,59)
三、更改器方法与访问器方法
get方法仅仅查看并返回对象的状态,而set和add方法却对对象的状态进行修改。
对实例域作出修改的方法叫做更改器方法,仅访问实例域而不进行修改的方法称为访问器方法。
通常的习惯是在访问器方法名前面加上前缀get,在更改器方法前面加上前缀set。例如GregorianCalendar类有getTime和setTime方法,它们分别用来获得和设置
日历对象所表示的时间点。