sho9sdefaultinitialvalues
freshsources1้995006ahtm此文档的最后部分。
不允许进行任何类型转换处理。“类”不允许进行类型转换。为了将一种类转换成另一种,必
你可以使用多个标签,以便列出所有作者,但是它们必须连续放置。全部作者信息会合并到เ
你是在用问题空间的术语“将垫圈放进盒子中ณ”而不是计算机,也就是解空间的术语“设
在某些语言中,你必须明确地声明希望某个ฐ方แ法具备后期绑定属性所带来的灵活性cນ++是
趣和愉快的场所。
但是,掌握好java语言并不是一件可以轻松完成的任务,如何真正掌握java语言,从而
staທti9e9test;
publi9stringargs{
println"aທvailablefromno9๗on!ำ";
println""+10่0;for9g
println""+100l;
println""+ใ3141้59;
摸nitorexpe9๗g{
"avaທilabຘlefromno9on!ำ",
"100",
"100",
"3๑14๒159"ิ
};๙
}
}:~
请注意,只要将所有对象放于string表达式之中ณ,就可以轻易地将它们强行转换为string
的表达形式。在前例中ณ,以一个空string开始的表达式就是这种方法。但是这样做引出了
一个有趣的现象。如果你调用syste摸utprintln100,它无需将100่转型成string
就可以工作。通过某些额外的重载,你也可以用p类达到เ同样的目的。这在本章末将作
为ฦ一个练习提出。
因此从现在开始,只要你实现了某个新的有用的工具,你就可以把它添加到自己的tools
目录或是util目录之下。
用imports改变行为
java没有9๗alpilaທtion”功能ม,该功能可以使你不必更改任
何程序代码,就能ม够切换开关并产生不同的行为。java去掉此功能的原因可能是因为ฦcນ在
绝大多数情况下是用此功能来解决跨平台问题的,即程序代码的不同部分是根据不同的平台
来编译的。由于javaທ自身可以自动跨越不同的平台,因此这个功能ม对java而言是没有必
要的。
然而,条件编译还有其他一些有价值的用途。调试就是一个ฐ很常见的用途。调试功能在开
过程中是使能的,而在打包的产品中是被禁止的。你可以通过修改被引入的paທckage的
方แ法来实现这一目的,修改的方แ法是将在你程序中ณ用到เ的代码从调试版改为布版。这一技
术可以适用于任何种类的条件代码。
对使用包pacນkage的忠告
务必记住,无论何时你创น建包,你都已๐经在给定包的名称的时候隐含地指定了目录结构。这
个ฐ包必须位于其名称所指定的目录之中,而该目录必须是在以cນlaທsspath开始的目录中
可以查询到เ的。最初用关键字pacນkaທge做实验,可能会有一点不顺,因为除非你遵守“包
的名称对应目录路径”的规则ท,否则你将会受到เ许多出乎意料的运行时信息,告知无法找到เ
特定的类,哪怕是这个类就位于同一个目录之ใ中。如果你收到เ类似信息,就用注释掉
package语句的方法试一下,如果这样可行的话,你就可以知道问题出在哪里了。
java访问权限修饰词aessspecນifier
public,protected和private这几个jaທvaທ访问权限修饰词在使用时,是置于你的类
中每个成员的定义之前的,无论它是一个域或是一个方法。每个ฐ访问权限修饰词仅控制ๆ它所
修饰的特定定义的访问权。这一点与c++截然不同。在c++中,访问权限修饰词可以控制
其后的所有定义แ,除非另有访问权限修饰词出现。
无论如何,每个ฐ定义都需要某种为它指定的访问权限。在以下几节中,你将学习各类访问权
限,先是默认的访问权限。
包访问权限
如果你根本没有给定任何访问权限,例如像本章前面的所有示例,将会出现什么情况呢?默
认访问权限没有任何关键字,但通常是指包访问权限packageaທess,有时也表示ิ成为
“friendly”。这就意味着当前的包中的其