Date birthday = new Date();到底是什么意思?发生了什么?
在java类和对象的学习中,一直对这句话一知半解。今天经过查阅资料,加深了对new 新建一个对象的理解。话不多说,直接开搞。
1. 首先这句话其实可以拆解为两个部分。先看第二部分 new Date()。 在java中创建对象需要用到构造器。 构造器是一种特殊的方法,他的名字和类名相同。因此在这句话中构造器为 Date()
2. 有了构造器,我们就希望通过它新建一个对象。在java中用关键字new来新建对象,加在构造器的前面。因此 new Date() 这句话就代表了构造了一个Date类型的对象,new Date()的值是当前对象的引用。
3. Date birthday 表示定义了一个对象变量 ,他可以引用Date类型的对象(当然,如果Date类型还有子类,那么birthday还可以引用其子类的对象,这个特性反映了JAVA语言对象变量的多态性。)。笔者喜欢把这句话类比于 int a; 这个时候Data就相当于“int”,相当于一种类型。可以说 Date birthday 这句话,定义了一个Date类型的变量,变量名为birthday
4.Date birthday = new Date()合起来可以理解为: 表达式 new Date() 构造了一个 Date 类型的对象,并把它的值(new Date()的值是当前对象的引用)赋值给了对象变量birthday。 这个时候birthday就指向了通过new Date() 新建的这个对象。