的类族之间可以进行类型转换;例如,“橡树”可转型为“树”;反之亦然。但不能把它转换成
其中,“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;
将会为对象分配存储空间,并调用相应的构造器。这就确保了在你能操作对象之前,它已经
被恰当地初始化了。