欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

19.package语句

程序员文章站 2022-04-29 13:23:14
...

接着来讲讲在Java源文件中,除了类之外,另外非常重要的两个部分:package和import。

 

这篇来说package。

 

 

按照一般的解释来说,package的出现,是为了解决同名类的问题的。

 

这么说吧,

 

如果你现在有两个同名的文件,要保存在你的硬盘上,你怎么处理?不要提重命名,不允许改名。怎么办?其实建立两个文件目录,把两个同名文件分别放到两个不同的目录中,就可以了。

 

对极了。实际上,我们可以把package看做是文件目录,事实上,如果一个类设置了package,最后在编译好之后,处理方式就是讲编译好的类,按照类中package的声明,放入对应的目录中。比如你有两个Student类,实现逻辑不一样,一个是小学生、一个是大学生,当然都是学生类,这样你就可以建立两个package,分别把两个编译后的类文件放入相应的目录里面,即该类中声明的package的位置。

 

就像你可以建立多级目录一样,在Java中,package的声明也可以是多级的有层次的。还拿两个学生类来说,都声明为public class Student,但是声明不同的包。Java使用 . 来分割各个层级的package目录。

 

package cn.edu.university

 

package cn.edu.primary

 

这样,把代表大学生的学生类放入第一个包中,把代表小学生的类放入第二个包里面,就解决了类命名冲突的问题了。

 

拿第一个包来说明,这个包路径,就是一个文件目录路径,只要把.换成\,就是一个标准的windows目录了。cn\edu\university

 

package语句的基本语法如下:package  <top_pkg_name> [ .<sub_pkg_name>] * ;

 

为了避免不同的公司之间类名的重复,Sun建议使用公司Internet域名的倒写来当作包名,例如,使用域名tsinghua.edu.cn的倒写 cn.edu.tsinghua来作为包的名称。

 

要注意的是,如果使用命令行的javac编译命令对Java源文件进行编译,编译好的只是一个类文件,如果要使用这个类文件(类),你必须将这个类文件放入到对应该类的package声明的目录下,就像前面说到的。并且在使用该类的时候,要完整的引用该类。比如要引用前面的那个大学生类,必须这么来写:java cn.edu.university.Student。

 

你可能会觉得这么用很麻烦,大家都是这样认为的。不过不用担心,基本上常用的IDE工具,都提供package声明处理的基本操作。比如Eclipse,你只需要首先建立相应的package,然后再相应的package里面创建类,Eclipse会自动对正确的类进行编译,并按照类所处package,在编译后的位置,建立相应的目录,把编译后的类文件放进去,所以,不用担心,你需要做的只是编写代码,后续的动作都由IDE来做,不然软件开发效率怎么来提高啊?

 

不过现在使用package的目的已经和最初的不太一样了。实际上在实际开发里面,很少会出现重名的类文件的(除非是多方合作,使用其他第三方包等),更多的时候,package和我们现在使用文件夹目的是一样的,使用文件夹来讲不同类型、不通功能的文件分门别类的放置,方便使用和查找。想想你的电脑上的文件目录,没错吧。

 

package就说到这,在IDE中使用package,几乎是没有任何难度门槛的。

 

下一篇来说说import。