Java-第6章 访问权限控制

来源:互联网 发布:维密摔倒后果 知乎 编辑:程序博客网 时间:2024/05/21 07:15

访问控制(或隐藏具体实现)与”最初的实现并不恰当“有关。

所有优秀的作者,包括那些编写软件的程序员,都清楚其著作的某些部分直至重新创作的时候才变得完美,有时甚至要重写多次。如果你把一个代码段放到了某个位置,等过一会回头再看时,有可能会发现有更好的方式去实现相同的功能。这正是重构的原动力之一,重构即重写代码,以使它更可读、更易理解,并因此而更具可维护性。

包:库单元

要提供一个管理名字空间的机制。

代码组织

当编译一个.java文件时,在Java文件中每个类都会有一个输出文件,而改输出文件名称与.java文件中每个类的名称相同,只是多了一个后缀名.class。java可运行程序是一组可以打包并压缩为一个java文档文件的.class文件。java解释器负责这些文件的查找、装载和解释。

类库实际上是一组类文件。其中每个文件都有一个public类,以及任意数量的非public类。因此每个文件都有一个构件。如果希望这些构件(每一个都有他们自己的独立的.java和.class文件)同属同一个组群,就可以使用关键字package。

如果使用package语句,它必须是文件中除注释以外的第一句程序代码。在文件起始处写:package access

就表示你在声明改编译单元式名为access的类库的一部分。(请注意,Java包命名规则全部使用小写字母,包括中间的字也是如此。)另一个选择是给出完整的名称。

创建独一无二的包名

按照惯例,package名称的第一部分是类的创建者的反顺序的Internet域名。

用inport改变行为

Java没有C的条件编译功能,调试版---发布版。

对使用包的忠告

务必记住,无论何时创建包,都已经在给定包的时候隐含的指定了目录结构。这个包必须位于其名称所指定的目录之中。

public protected private

总结

无论是在什么样的关系中,设立一些为各成员所遵循的界限始终是很重要的。当创建了一个类库,也就与改类库的用户建立了某种关系,这些用户就是客户端程序员,他们是另外一些程序员,他们将你的类库聚合成为一个应用程序,或是运用你的类库来创建一个更大的类库。

如果不指定规则,客户端程序员就可以对类的所有成员随心而为,即使你可能并不希望他们直接复制其中的一些成员。在这种情况下,所有事物都是公开的。

第二个原因,也是最重要的原因,是为了让类库设计者可以更改类的内部工作方式,而不必担心这样会对客户端程序员产生重大影响。例如,最初可能会以某种方式创建一个类,然后发现如果更改程序结构,可以大大提高运行速度。如果接口和实现可以明确地被隔离盒加以保护,那么就可以实现这一目的,而不必强制客户端程序员重新编写代码。访问权限控制可以确保不会有任何客户端程序员依赖与某个类的底层实现的任何部分。










原创粉丝点击