的类族之间可以进行类型转换;例如,“橡树”可转型为“树”;反之亦然。但不能把它转换成

其中,“author-information”,望文生义你也知道,应该是你的姓名,也可以包括电子邮件

问题,并且只用一行代码就可以做更多的事。

中存储的信息来计算方法体的地址这个过程将在第7章中详述。这样,根据这一小段代

得到我真正想要的。感谢prenticehall的paulpetralia不断地为我我所需要的一切,

应该努力学习的榜样。

freshsources1995006ahtm此文档的最后部分。

第四章初始化与清除

随着计算机革命的展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一。

“初始化initialization”和“清除9up”正是涉及安全的两个问题。许多c程序的

错误都源于程序员忘记初始化变量。特别是在使用程序库时,如果用户不知道如何初始化库

的构件,或者是用户必须初始化的其它东西,更是如此。清理也是个特殊的问题,当你使用

完一个元素时,它对你也就不会有什么影响了,所以你很容易把它忘记。这样一来,这个元

素占用的资源就会一直得不到释放,等待你的将是资源尤其是内存用尽的后果。

9structor”的概念。这是一个在创建对象时被自动调用的特殊方法。

java中也采用了构造器,并额外了“垃圾回收器”。对于不再使用的内存资源,垃圾回

收器能自动将其释放。本章将讨论初始化和清理的相关问题,以及java对它们的支持。

以构造器确保初始化

可以假想为编写的每个类都定义一个initialize方法。此名称提醒你在使用其对象之前,应

先调用initialize。然而,这同时意味着用户必须记得自己去调用此方法。在java中,通

过“构造器”这种特殊方法,类的设计者可确保每个对象都会得到初始化。当对象被创

建时,如果其类具有构造器,java就会在用户有能力操作对象之前自动调用相应的构造器,

所以初始化动作得以确保。

接下来的问题就是如何命名这个方法。有两个问题:第一,你取的任何名字都可能与类的某

个成员名称相冲突;第二,调用构造器是编译器的责任,所以必须让编译器知道应该调用哪

个方法。c++语言中采用的方案看来最简单且更符合逻辑,所以在java中也得到了应用:

即构造器采用与类相同的名称。考虑到在初始化期间要自动调用构造器,这种作法就顺理成

章了。

以下就是一个带有构造器的简单类:

:9structorjava

de摸nstrationofasimple9structor

importuceeckelsimpletest;

classrock{

rock{thisisthe9structor

syste摸utprintln"9grock";

}

}

publi9structor{

stati9e9test;

publi9stringargs{

forinti=0;i10;i++

ne9rock;

摸nitorexpe9g{

"9grock",

"9grock",

"9grock",

"9grock",

"9grock",

"9grock",

"9grock",

"9grock",

"9grock",

"9grock"

};

}

}:~

现在,在创建对象时:

ne9rock;

将会为对象分配存储空间,并调用相应的构造器。这就确保了在你能操作对象之前,它已经

被恰当地初始化了。