返回

Java编程思想

关灯
护眼
第9章(1 / 10)
强烈推荐: 修斯的无极神战 异空间之战 爱上鬼新娘 两个灵魂--清宫里的另一半灵魂 战争本能 天下无双之夕城 善缘——六道众生 烟雨倾城 深蓝传说

sho9sdefaultinitialvalues

stati9e9test;๙

不允许进行任何类型转换处理。也就是解空间的术语“设

易。

你是在用问题空间的术语,但是这样做引出了

,如“岩石”。为了将一种类转换成另一种,“类”不允许进行类型转换,如果你调用syste摸utprintln100่。它无需将1้00转型成string

就可以工作。

stati9e9test;

publi9stringargs{

println"ิavailabຘlefromno9on!ำ";๙

println""ิ+10่0;for9g

println""+ใ1้00l;๙

println""ิ+ใ31415๓9;

摸nitorexpe9๗g{

"availablefromno9on!",

"ิ100",

"100",

"314159"ิ

};๙

}

}:~

请注意,只要将所有对象放于string表达式之中,就可以轻易地将它们强行转换为string

的表达形式。在前例中,以一个空string开始的表达式就是这种方法。必

类族以外的类型。维护如果报告可信的话在程序生命周,

而且不厌其烦地帮我把所有事情都搞定。通过某些额外的重载,你也可以用p类达到同样的目的。

因此从现在开始。这在本章末将&#,只要你实现了某个新的有用的工具,你就可以把它添加到เ自己้的tools

目录或是util目录之下。该功能可以使你不必更改任

何程序代码,

用imports改变行为

java没有9๗al&#,就能ม够切换开关并产生不同的行为。jaທva去掉此功能的原因可能ม是因为c在

绝大多数情况下是用此功能来解决跨平台问题的,即程序代码的不同部分是根据不同的平台

来编译的。由于jaທva自身可以自动跨越不同的平台,因此这个功能ม对java而言是没有必

要的。

然而,条件编译还有其他一些有价值的用途。调试就是一个ฐ很常见的用途。调试功能ม在开

过程中是使能的,而在打包的产品中是被禁止的。你可以通过修改被引入的paທckage的

方法来实现这一目的,修改的方แ法是将在你程序中用到的代码从调试版改为布版。这一技

术可以适用于任何种类的条件代码。

对使用包package的忠告

务必记住,无论何时你创น建包,你都已๐经在给定包的名称的时候隐含地指定了目录结构。这

个ฐ包必须位于其名称所指定的目录之ใ中,而该目录必须是在以classpaທth开始的目录中

可以查询到的。最初用关键字package做实验,可能会有一点不顺,因为ฦ除非你遵守“包

的名称对应目录路径”的规则,否则你将会受到许多出乎ๆ意料的运行时信息,告知无຀法找到

特定的类,哪怕是这个类就位于同一个目录之中ณ。如果你收到类似信息,就用注释掉

package语句的方法试一下,如果这样可行的话,你就可以知道问题出在哪里了。

java访问权限修饰词aessspecນifier

public,ไprotecນted和private这几个jaທva访问权限修饰词在使用时,是置于你的类

中每个成员的定义แ之前的,无຀论它是一个ฐ域或是一个方法。每个访问权限修饰词仅控制ๆ它所

修饰的特定定义的访问权。这一点与c++截然不同。在c++中ณ,访问权限修饰词可以控制

其后的所有定义,除非另有访问权限修饰词出现。

无຀论如何,每个ฐ定义แ都需要某种为它指定的访问权限。在以下几节中,你将学习๤各类访问权

限,先是默认的访问权限。

包访问权限

如果你根本没有给定任何访问权限,例如像本章前๩面的所有示例,将会出现什么情况呢?默

认访问权限没有任何关键字,但通常是指包访问权限pacນkaທgeaess,有时也表示成为

“friendly”。这就意味着当前的包中的其他类对那个成员有访问权限,但对于在这个包之ใ

外的所有类,这个成员却是private。由于一个编译单元,即一个文件,只能隶属于一个

单一的包,所以经由包访问权限,处于某个单一编译单元之ใ中的所有类彼此之间都是自动可

访问的。

包访问权限允许你将包内所有相关的类组合起来,以使它们彼此之间可以轻松地相互作用。

等你把类组织起来放进一个包内之ใ后,也就给它们的包访问权限的成员赋予了相互访问的权

限,你拥有了该包内的程序代码。“只有你拥有的程序代码才可以访问你所拥有的其他程序

代码”这种想法是合理的。你应该说,包访问权限为把类群聚在一个包中ณ的做法了意义แ

和理由。在许多语言中ณ,你在文件内组织定义แ的方แ式是任意的,但在java中,则要强制ๆ你

以一种合理的方式对它们加以组织。另外,你可能还想要排除这样的类:它们不应该访问在

当前包中所定义的类。

类掌握着控制哪些代码对自己的成员享有访问权的权力。不存在任何获得访问权的其它捷

径。其他包内的类不能ม一出现就说:“嗨,我是bຘob的朋友。”,并且还想看到bຘob的

protecນted,包访问权限和private成员。取得对某成员的访问权的唯一途径是:

1使该成员成为ฦpublicນ。于是,无论是谁,无论在哪里,都可以访问该成员。

2通过不加访问权限修饰词并将其他类放置于同一个包内的方式给成员赋予包访问

权。于是包内的其他类也就可以访问该成员了。

3第6๔章将会介绍到继承技术,届时你将会看到เ继承而来的类可以与访问public成

员一样地访问protected成员但访问private成员却不行。只有在两个ฐ类

都处于同一个包内时,它才可以访问包访问权限的成员。但现在不必担心了。

4访问器aທessor和变异器mutator方法也称作“get色t”方法,

以读取和改变数值。如你在第4章中看到เ的一样,对oop而言,这是最优雅的方

式,而对javabeans来说,也๣是它的基本原理。

public:๘接口访问权限

当你使用关键字pubຘlic,就意味着pubຘlic之后紧跟着的成员声明对每个人都是可用的,

尤其是使用程序库的客户端程序员更是如此。假设你定义แ了一个包含下面编译单元的

des色rt包:

:c05:des色rt:cookiejaທvaທ

createsaທliaທry

packagecນ0่5des色rt;

publicນclasscookie{

publiccookie{

书签 上一章 目录 下一章 书架s
推荐阅读: 热带鱼电影 十方葬地笔趣阁 末世剑神系统有9把神剑 家有妖男六七只笔趣阁 女男女 末世超级英雄系统txt 艾泽拉斯巨魔的永恒 小说 倾魂妻txt百度云 维序者讲了什么 十年三月三十日