2.9.3 创建一个对象
创建一个对象
-原始类型的声明可分配存储器空间
-非原始类型的声明不分配存储器空间
-声明的变量不是数据本身, 而是数据的引用(或指针)
当任何原始类型(如boolean, byte, short,char,int,long,float或double类型) 的变量被声明时,作为上述操作的一部分,存储器空间也同时被分配。使用非原始类型(如String或class)的变量的声明不为对象分配存储器空间。
事实上,使用class类型声明的变量不是数据本身,而是数据的引用(reference)。
注意----你也可以认为引用是一个指针(pointer), 这可能会有助于你的理解。实际上, 在大多数实现中, 也确实可以这样认为。值得注意的是, Java编程语言实际上不支持指针数据类型。
在你可以使用变量之前,实际存储器必须被分配。这个工作是通过使用关键字new来实现的。如下所示:
MyDate myBirth;
myBirth = new MyDate ();
第一个语句(声明)仅为引用分配了足够的空间,而第二个语句则通过调用对象为构成MyDate的三个整数分配了空间。对象的赋值使变量myBirth重新正确地引用新的对象。这两个操作被完成后,MyDate对象的内容则可通过myBirth进行访问。
假使定义任意一个class XXXX, 你可以调用new XXXX () 来创建任意多的对象,对象之间是分隔的。一个对象的引用可被存储在一个变量里,因而一个”变量点成员”(如myBirth.day)可用来访问每个对象的单个成员。请注意在没有对象引用的情况下,仍有可能使用对象,这样的对象称作”匿名”对象。
2.9.4 创建一个对象----存储器分配和布局
创建一个对象----存储器分配和布局
一个声明仅为一个引用分配存储器
MyDate today
today = new MyDate();
today
在一个方法体中,声明
MyDate today
today = new MyDate();
仅为一个引用分配存储器
today
关键字new意味着存储器的分配和初始化
MyDate today;
today = new MyDate();
赋值则建立了引用变量,从而它可适当地引用新的创建对象
MyDate today;
today = new MyDate();
|