对象与对像变量
要使用对像 必须构造对像 , 并指定其初始化状态
在java 使用构造器构造新实列
构造器是一种特述的的方法, 用来构造对像并初始化对像
构造器的名字应该与类名相同。
要想构造一个 Date 对 象, 需要在构造器前面加上 new 操作符, 如下所示:
new Date()
这个表达式 构造啦一个对象 , 这个对象被初始化为当前的日期和时间。
也可以将这个对象传递给一个方法:
System.out.printTn(new DateO) ;
也可以将一个方法应用于刚刚创建的对象。 Date 类中有一个 toString 方法。 这
个方法将返回日期的字符串描述
下面的语句可以说明如何将 toString 方法应用于新构造的 Date 对象上。
String s = new Date().toString();
在这个列子中, 构造的对象仅使用啦一次I通常,
希望构造的对象可以多次使用, 因 此, 需要将对象存放在一个变量中:
Date birthday = new Date();
在对象与对象变量之间存在着一个重要的区别。例如, 语句
Date deadline; // deadline doesn't refer to any object
定义了一个对象变量 deadline 他可以的引用data 类型的对象
但是 要认识到 dealline 不是一个对象 ,实际上也没有引用对象。
时, 不能将任何 Date 方法应用于这个变 量上。 语句 反之
当你 不是使用 此个对像的变量的时候 编译不过
s = deadline.toStringO; // not yet
里有两个选择。当然,可以用新构造的对象初始化这
个变量:
deadline = new Date() ;
也让这个变量引用一个已存在的对象:
deadline = birthday;
一定要认识到 : 一个对象变量并没有实际包含一个对象 而仅仅引用一个对象。
在Java 中, 任何对I像变量的值都是对存储在另外一个对象的引用。
任何对象变量的值都是对存储在另外一个地方的一个对象的引用。new 操作 符的返回值也是一个引用。 下列语句:
Date deadline = new Date();
有两个部分。表达式 new Date() 构造了一个 Date 类型的对象, 并且它的值是对新创建对象的 引用。这个引用存储在变量 deadline 中。
可以显式地将对象变量设置为 mil,】 表明这个对象变量目前没有引用任何对象。
deadline = null;
if (deadline != null) System.out.println(deadline) ;
如果将一个方法应用于一个值为 null 的对象上, 那么就会产生运行时错误。
birthday = null;
String s = birthday.toStringQ; // runtime
局部变量不会自动地初始化为 nul,l 而必须通过调用 new 或将它们设置为 null 进行初始化。
并且引用不能被赋值。 可以将 Java 的对象变量看作 C++ 的对象指针。 例 如,
Date birthday; // Java
实际上, 等同于 Date* birthday; // C++
所有的 Java 对象都存储在堆中。 当一个对象包含另一个对象变量时, 这个变量依然 包含着指向另一个堆对象的指针。
如果把一个变量的值賦给另一个变量, 两个变量就指向同一个日期, 即它们是同一 个对象的指针。 在 Java 中的 null 引用对应 C++ 中的 NULL 指针