接着来讲讲在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(Python Package Index)是Python开发者分享和发现软件包的主要平台,因此,该资源是从PyPI官网上下载的。 首先,我们来了解一下Python库。Python库是一组预先编写好的函数和模块,它们提供了额外的功能,帮助...
在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"指出这是一个从Python Package Index(PyPI)官方源下载的软件包,名为Vicinator,版本号为0.0.19,其打包格式是tar.gz。PyPI是Python社区广泛使用的第三方库分发...
标题中的"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" 指出,这是一个在Python Package Index (PyPI) 官网上可以找到的软件包,名为 DIRAC,版本为 7.3.0 的一个预发布版(alpha 19)。PyPI 是Python开发者分享和分发他们...
标题 "PyPI 官网下载 | FEW-0.0.19.tar.gz" 提到的是一个在Python Package Index (PyPI) 官网上可以找到的软件包,名为 "FEW",版本号为 0.0.19。这个软件包被压缩成 `.tar.gz` 格式,这是一种常见的在Linux和Unix...
现代Python开发环境中,更常用的是通过`pip`工具来安装库,但若`pihy`库未在PyPI(Python Package Index)上发布,就无法通过`pip`直接安装。 **Python的开发语言特性** Python是一种高级编程语言,以其简洁明了的...
在Python的世界里,PyPI(Python Package Index)是最重要的软件仓库,它为开发者提供了上传和分享Python库的平台。今天我们要关注的是一个名为`polysquare-setuptools-lint`的库,其版本为0.0.19,可以从PyPI官网上...
16. **Maven项目管理**:介绍Maven作为构建和依赖管理工具的作用,理解POM.xml配置文件,以及常用命令如mvn clean、mvn compile和mvn package。 17. **Spring框架**:Spring是Java企业级应用开发的主流框架,讲解...
9. Java源文件:package语句应位于源文件顶部,作为第一条语句。 10. switch语句与if语句:switch语句可以改写为一系列if...else if...else语句来实现相同功能。 11. PowerPoint2003放映方式:选项D错误,因为...
37. Java语句包括方法调用语句、表达式语句、复合语句、控制语句以及package和import语句。 38. Java语句还包括控制语句和import语句。 39. switch语句中的case标签必须互不相同。 40. do-while循环至少执行一次,而...
4. 在Java中,package语句创建的包结构必须与文件目录的层次相同,选项B是正确的。 5. 字符串在内存中作为一维字符数组存储,所以第5题答案正确。 6. FlowLayout是Java中的布局管理器,LEFT、CENTER和RIGHT是其...
22. 模块包(Package)管理 23. 模块高级应用 24. 类(Class)定义 25. Python命名空间管理 26. 运算符重载机制 27. 类设计模式 28. 类的高级话题 29. 异常处理基础 30. 异常对象深入 31. Unicode与字节串管理 32. ...
§ 3.3 块语句结构 BLOCK .....................................................................................29 § 3.4 进程 PROCESS .......................................................................
§ 3.7 程序包 PACKAGE ........................................................................................48 § 3.8 配置 CONFIGURATION ................................................................
19. CONSTANT:常量关键词 20. DISCONNECT:断开关键词 二、控制结构关键词 1. IF:条件语句关键词 2. ELSIF:否则如果关键词 3. ELSE:否则关键词 4. END:结束关键词 5. EXIT:退出关键词 6. FOR:循环语句...
在Linux操作系统中,掌握基本的命令行语句是至关重要的,因为它们构成了与系统交互的基础。以下是一些常见的Linux命令及其详细解释: 1. `ls`:列出目录内容,`-a`选项显示所有文件(包括隐藏文件),`-l`选项以...
正确示例包括B和C,但B选项中的package语句应在import语句之前。 【接口和继承】 Java的接口支持单一继承,一个类可以实现多个接口,而Java的类只允许单继承。这增强了代码的可靠性和设计的灵活性。 【变量声明和...
2. package声明语句:在Java中,package语句用于组织源代码,它是源文件的第一条语句,用于指定类所在的包。 3. 添加网络打印机:在Windows系统中,通过添加网络打印机图标可以连接并使用网络上的共享打印机。 4. ...
9. Java源文件结构:在Java源文件中,`package`声明语句应作为第一条语句。 10. 三角形条件:判断A、B、C能否构成三角形边长的逻辑表达式是`A + C > B And B + C > A And C > 0`。 11. 关系数据库操作:连接操作...