`
liuwei1981
  • 浏览: 771927 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:161212
社区版块
存档分类
最新评论

19.package语句

 
阅读更多

接着来讲讲在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。

分享到:
评论

相关推荐

    PyPI 官网下载 | tolkein-0.0.19.tar.gz

    PyPI(Python Package Index)是Python开发者分享和发现软件包的主要平台,因此,该资源是从PyPI官网上下载的。 首先,我们来了解一下Python库。Python库是一组预先编写好的函数和模块,它们提供了额外的功能,帮助...

    ansible-2.9.19.rpm.zip

    在Linux环境中,通常通过RPM(Red Hat Package Manager)包来安装Ansible,而"ansible-2.9.19.rpm"就是这样的一个RPM包。在描述中提到的"ansible-2.9.19.rpm",意味着我们可以直接在支持RPM的系统上安装这个版本的...

    PyPI 官网下载 | Vicinator-0.0.19.tar.gz

    标题中的"PyPI 官网下载 | Vicinator-0.0.19.tar.gz"指出这是一个从Python Package Index(PyPI)官方源下载的软件包,名为Vicinator,版本号为0.0.19,其打包格式是tar.gz。PyPI是Python社区广泛使用的第三方库分发...

    PyPI 官网下载 | odim-0.1.19.tar.gz

    标题中的"PyPI 官网下载 | odim-0.1.19.tar.gz"指出这是一个从Python Package Index(PyPI)官方下载的软件包,名为"odim"的版本0.1.19,其格式是tar.gz,这是一种常见的在Unix/Linux环境下打包和压缩文件的方式。...

    PyPI 官网下载 | DIRAC-7.3.0a19.tar.gz

    标题 "PyPI 官网下载 | DIRAC-7.3.0a19.tar.gz" 指出,这是一个在Python Package Index (PyPI) 官网上可以找到的软件包,名为 DIRAC,版本为 7.3.0 的一个预发布版(alpha 19)。PyPI 是Python开发者分享和分发他们...

    PyPI 官网下载 | FEW-0.0.19.tar.gz

    标题 "PyPI 官网下载 | FEW-0.0.19.tar.gz" 提到的是一个在Python Package Index (PyPI) 官网上可以找到的软件包,名为 "FEW",版本号为 0.0.19。这个软件包被压缩成 `.tar.gz` 格式,这是一种常见的在Linux和Unix...

    Python库 | pihy-0.2.19.tar.gz

    现代Python开发环境中,更常用的是通过`pip`工具来安装库,但若`pihy`库未在PyPI(Python Package Index)上发布,就无法通过`pip`直接安装。 **Python的开发语言特性** Python是一种高级编程语言,以其简洁明了的...

    PyPI 官网下载 | polysquare-setuptools-lint-0.0.19.tar.gz

    在Python的世界里,PyPI(Python Package Index)是最重要的软件仓库,它为开发者提供了上传和分享Python库的平台。今天我们要关注的是一个名为`polysquare-setuptools-lint`的库,其版本为0.0.19,可以从PyPI官网上...

    Wiley.-.Java.in.60.Minutes.a.Day.(19.Lectures,.789.pages).rar

    16. **Maven项目管理**:介绍Maven作为构建和依赖管理工具的作用,理解POM.xml配置文件,以及常用命令如mvn clean、mvn compile和mvn package。 17. **Spring框架**:Spring是Java企业级应用开发的主流框架,讲解...

    2021-2022计算机二级等级考试试题及答案No.16348.docx

    9. Java源文件:package语句应位于源文件顶部,作为第一条语句。 10. switch语句与if语句:switch语句可以改写为一系列if...else if...else语句来实现相同功能。 11. PowerPoint2003放映方式:选项D错误,因为...

    JAVA填空题 (2).pdf

    37. Java语句包括方法调用语句、表达式语句、复合语句、控制语句以及package和import语句。 38. Java语句还包括控制语句和import语句。 39. switch语句中的case标签必须互不相同。 40. do-while循环至少执行一次,而...

    2021-2022计算机二级等级考试试题及答案No.19034.docx

    4. 在Java中,package语句创建的包结构必须与文件目录的层次相同,选项B是正确的。 5. 字符串在内存中作为一维字符数组存储,所以第5题答案正确。 6. FlowLayout是Java中的布局管理器,LEFT、CENTER和RIGHT是其...

    Python学习笔记第四版中文pdf高清版最新版本

    22. 模块包(Package)管理 23. 模块高级应用 24. 类(Class)定义 25. Python命名空间管理 26. 运算符重载机制 27. 类设计模式 28. 类的高级话题 29. 异常处理基础 30. 异常对象深入 31. Unicode与字节串管理 32. ...

    VHDL实用教程,硬件描述语言

    § 3.3 块语句结构 BLOCK .....................................................................................29 § 3.4 进程 PROCESS .......................................................................

    VHDL实用教程[完整版]_潘松_PDF高清+word文档

    § 3.7 程序包 PACKAGE ........................................................................................48 § 3.8 配置 CONFIGURATION ................................................................

    VHDL程序语言的关键词2.doc

    19. CONSTANT:常量关键词 20. DISCONNECT:断开关键词 二、控制结构关键词 1. IF:条件语句关键词 2. ELSIF:否则如果关键词 3. ELSE:否则关键词 4. END:结束关键词 5. EXIT:退出关键词 6. FOR:循环语句...

    linux基本语句.docx

    在Linux操作系统中,掌握基本的命令行语句是至关重要的,因为它们构成了与系统交互的基础。以下是一些常见的Linux命令及其详细解释: 1. `ls`:列出目录内容,`-a`选项显示所有文件(包括隐藏文件),`-l`选项以...

    Java面向对象程序设计--试题.doc

    正确示例包括B和C,但B选项中的package语句应在import语句之前。 【接口和继承】 Java的接口支持单一继承,一个类可以实现多个接口,而Java的类只允许单继承。这增强了代码的可靠性和设计的灵活性。 【变量声明和...

    2021-2022计算机二级等级考试试题及答案No.4355.docx

    2. package声明语句:在Java中,package语句用于组织源代码,它是源文件的第一条语句,用于指定类所在的包。 3. 添加网络打印机:在Windows系统中,通过添加网络打印机图标可以连接并使用网络上的共享打印机。 4. ...

    2021-2022计算机二级等级考试试题及答案No.11082.docx

    9. Java源文件结构:在Java源文件中,`package`声明语句应作为第一条语句。 10. 三角形条件:判断A、B、C能否构成三角形边长的逻辑表达式是`A + C &gt; B And B + C &gt; A And C &gt; 0`。 11. 关系数据库操作:连接操作...

Global site tag (gtag.js) - Google Analytics