第9章

第四章初始化与清除

第四章初始化与清除

同一段落,置于生成的html中。

同一段落,置于生成的html中ณ。

使用virtual关键字来实现的。在这些语言中ณ,方法在缺省情况下不是动态绑定的。而在jaທva

使用virtual关键字来实现的。在这些语言中,方法在缺省情况下不是动态绑定的。而在java

编写出健壮的、高效的、灵活的程序是javaທ程序员们面临的重大挑战。

编写出健壮的、高效的、灵活的程序是javaທ程序员们面临的重大挑战。

stati9e9test;๙

publi9stringaທrgs{

println"availablefromno9๗on!";

println"ิ"+1้00;for9g

println"ิ"+ใ100l;

println""ิ+31415๓9;

摸nitorexpe9g{

"availablefromno9๗on!",

"100",

"10่0",

"314๒159"

};

}

}:๘~

请注意,只要将所有对象放于string表达式之中,就可以轻易地将它们强行转换为ฦstring

的表达形式。在前例中ณ,以一个空string开始的表达式就是这种方法。但是这样做引出了

一个有趣的现象。如果你调用syste摸utprintln100,它无需将10่0转型成string

就可以工作。通过某些额外的重载,你也可以用p类达到同样的目的。这在本章末将作

为一个练习提出。

因此从现在开始,只要你实现了某个ฐ新的有用的工ื具,你就可以把它添加到自己的tools

目录或是util目录之下。

用imports改变行为ฦ

java没有9๗alpilation”功能,该功能ม可以使你不必更改任

何程序代码,就能ม够切换开关并产生不同的行为。java去掉此功能的原因可能是因为c在

绝大多数情况下是用此功能来解决跨平台问题的,即程序代码的不同部分是根据不同的平台

来编译的。由于jaທva自身可以自动跨越不同的平台,因此这个功能对jaທva而言是没有必

要的。

然而,条件编译还有其他一些有价值的用途。调试就是一个很常见的用途。调试功能在开

过程中是使能的,而在打包的产品中ณ是被禁止的。你可以通过修改被引入的package的

方แ法来实现这一目的,修改的方法是将在你程序中用到的代码从调试版改为ฦ布版。这一技

术可以适用于任何种类的条件代码。

对使用包package的忠告

务必记住,无຀论何时你创建包,你都已经在给定包的名称的时候隐含地指定了目录结构。这

个包必须位于其名称所指定的目录之中,而该目录必须ี是在以claທsspath开始的目录中ณ

可以查询到เ的。最初用关键字pacນkage做实验,可能会有一点不顺,因为ฦ除非你遵守“包

的名称对应目录路径”的规则,否则你将会受到许多出乎意料的运行时信息,告知无法找到

特定的类,哪怕是这个类就位于同一个目录之ใ中。如果你收到类似信息,就用注释掉

packaທge语句的方แ法试一下,如果这样可行的话,你就可以知道问题出在哪里了。

java访问权限修饰词aທessspecifier

public,protecນted和privaທte这几个java访问权限修饰词在使用时,是置于你的类

中ณ每个成员的定义之前的,无຀论它是一个域或是一个方法。每个访问权限修饰词仅控制它所

修饰的特定定义แ的访问权。这一点与c++ใ截然不同。在c++ใ中,访问权限修饰词可以控制

其后的所有定义,除非另有访问权限修饰词出现。

无论如何,每个定义都需要某种为ฦ它指定的访问权限。在以下几节中ณ,你将学习各类访问权

限,先是默认的访问权限。

包访问权限

如果你根本没有给定任何访问权限,例如像本章前面的所有示ิ例,将会出现什么情况呢?默

认访问权限没有任何关键字,但通常是指包访问权限packageaess,有时也表示成为

“friendly”。这就意味着当前的包中的其他类对那个成员有访问权限,但对于在这个包之

外的所有类,这个成员却是private。由á于一个编译单元,即一个文件,只能隶属于一个

单一的包,所以经由包访问权限,处于某个ฐ单一编译单元之中的所有类彼此之间都是自动可