第六章 访问权限控制

来源:互联网 发布:数据分析报告怎么 编辑:程序博客网 时间:2024/06/10 04:48

6.1 包:库单元

包内包含有一组类,它们在单一的名字空间之下被组织在了一起。

a.我们需要用一个类的时候直接在import语句中命名该类,如:import java.unti.ArrayList; ,如果想要导入其中所有的类,只需要使用即import java.util.* ;

b. Java会对名称空间进行完全控制并为每个类创建唯一的标识符组合,这样A类中的f()与B类中的f()就不会彼此冲突。

 

         6.1.1 :代码组织

          a.编译的每一个 .java文件都会输出一个名称相同的 .class文件。

          b. Java可运行程序是一组可以打包并压缩为一个java文档文件的 .class文件。java负责这些文件的查找、装载和卸载。

          c. 类库实际上是一组类文件。其中每个文件都有一个public类,以及任意数量的非public类。因此每个文件都有一个构件。

               如果希望这些构件(每一个都有它们自己的独立的.java 和.class文件)从属同一个群组,就可以使用关键字package.

          d.java包的命名规则全部使用小写字母,包括中间的字母也是。

          e.package和import关键字允许你做的,是将单一的全局名称空间分割开来,使得无论多少人使用Internet以及java类开始编写类,都不会出现名称冲突.

          f. package语句必须是文件中除了注释以外的第一句程序代码.

     6.1.2 :创建独一无二的包名

          由于一个包可以有多个class文件构成,为了避免混乱,一种合乎逻辑的办法就是将特定包的所有.class文件都置于一个目录下。也就是说,利用操作系统的层次化的文件机构来解决这一问题。

          将所有的文件收入一个子目录还可以解决另外两个问题:1.怎么创建第一无二的类名,2.怎么查找有可能隐藏于目录结构中某处的类。这些类是通过将.class文件所在的路径位置编码成package的名称来实现的。按照惯例,package名称的第一部分是类的创建者的反顺序的Internet的域名。如果你遵照惯例,Internet域名应该是独一无二的,因此你的package名称也是独一无二的。

          Java解释器的运行过程如下:首先找出环境变量classpath。classpath包含一个或者多个目录,用作查找.class文件的根目录。

从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,已从classpath跟中产生一个路径名称,(于是pagckagefoo.bar.baz就变成了foo\bar\baz或者foo/bar/baz或者其他,这一切取决于操作系统)。得到的路径会与classpath中的各个不同的项相连接,解释器就在这些目录中查找与你所要创建的类名名称相关的.class文件。

         例如:我的域名是MindView.net为例。把它的顺序倒过来,并且将其全部转换成小写,net.mindview就成了我所创建的类的独一无二的全局名称。这个文件被置于我的操作系统的子目录下:C:\DOC\JavaT\net\mindview\simple

                  6.1.2 :定制工具类

         可以创建自己的工具库来减少或消除重复的程序代码,如System.out.print,可以通过import static net.mindview.util.print.*;

         直接写为print();

            6.1.2 :用Import改变行为

            

        

 

 

 

原创粉丝点击