对象与对像变量

 要使用对像 必须构造对像 , 并指定其初始化状态

在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 指针