- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机程序的思维逻辑--代码的组织机制
计算机程序的思维逻辑--代码的组织机制
使用任何语言进行编程都有一个类似的问题,那就是如何组织代码,具体来说,如何避免
命名冲突?如何合理组织各种源文件?如何使用第三方库?各种代码和依赖库如何编译连
接为一个完整的程序?
本节就来讨论Java中的解决机制,具体包括包、jar包、程序的编译与连接,从包开始。
包的概念
使用任何语言进行编程都有一个相同的问题,就是命名冲突 ,程序一般不全是一个人写
的,会调用系统提供的代码、第三方库中的代码、项目中其他人写的代码等,不同的人就
不同的目的可能定义同样的类名/接口名,Java中解决这个问题的方法就是包。
即使代码都是一个人写的,将很多个关系不太大的类和接口都放在一起,也不便于理解和
维护,Java中组织类和接口的方式也是包。
包是一个比较容易理解的概念,类似于电脑中的文件夹,正如我们在电脑中管理文件,文
件放在文件夹中一样,类和接口放在包中,为便于组织,文件夹一般是一个层次结构,包
也类似。
包有包名,这个名称以逗号分隔表示层次结构。比如说,我们之前常用的String类,就位
于包java.lang下,其中java是上层包名, lang是下层包名,带完整包名的类名称为其完
全限定名 ,比如String类的完全限定名为java.lang.String。Java API中所有的类和接口
都位于包java或javax下,java是标准包,javax是扩展包。
接下来,我们讨论包的细节,从声明类所在的包开始。
声明类所在的包
语法
我们之前定义类的时候没有定义其所在的包,默认情况下,类位于默认包下,使用默认包
是不建议的,文章中使用默认包只是简单起见。
定义类的时候,应该先使用关键字package,声明其包名,如下所示:
以上声明类Hello的包名为shuo.laoma,包声明语句应该位于源代码的最前面,前面不
能有注释外的其他语句。
包名和文件目录结构必须匹配 ,如果源文件的根目录为 E:src,则上面的Hello类对应的
文件Hello.java,其全路径就应该是E:srcshuolaomaHello.java。如果不匹配,Java会提
示编译错误。
命名冲突
为避免命名冲突,Java中命名包名的一个惯例是使用域名作为前缀 ,因为域名是唯一的,
一般按照域名的反序来定义包名,比如,域名是:apache.org,包名就以org.apache开
头。
没有域名的,也没关系,使用一个其他代码不太会用的包名即可,比如本文使用的shuo.l
aoma,表示老马说编程中的例子。
如果代码需要公开给其他人用,最好有一个域名以确保唯一性,如果只是内部使用,则确
保内部没有其他代码使用该包名即可。
组织代码
除了避免命名冲突,包也是一种方便组织代码的机制,一般而言,同一个项目下的所有代
码,都有一个相同的包前缀,这个前缀是唯一的,不会与其他代码重名,在项目内部,根
据不同目的再细分为子包,子包可能又会分为子包,形成层次结构,内部实现一般位于比
较底层的包。
包可以方便模块化开发 ,不同功能可以位于不同包内,不同开发人员负责不同的包。包也
可以方便封装,供外部使用的类可以放在包的上层,而内部的实现细节则可以放在比较底
层的子包内。
通过包使用类
同一个包下的类之间互相引用是不需要包名的,可以直接使用。但如果类不在同一个包
内,则必须要知道其所在的包,使用有两种方式,一种是通过类的完全限定名,另外一种
是将用到的类引入到当前类。
只有一个例外,java.lang包下的类可以直接使用,不需要引入,也不需要使用完全限定
名,比如String类,System类,其他包内的类则不行。
比如说,使用Arrays类中的sort方法,通过完全限定名,可以这样使用:
显然,这样比较啰嗦,另外一种就是将该类引入到当前类,引入的关键字是import,imp
ort需要放在package定义之后,类定义之前,如下所示:
import时,可以一次将某个包下的所有类引入,语法是使用.*,比如,将j
您可能关注的文档
最近下载
- 《风景谈》精品课件.ppt VIP
- T11长轨列车卸轨作业指导书.pdf VIP
- 城市轨道交通交流供电系统的保护方式1城市轨道交通交流供电系.pptx VIP
- 《极简项目管理》读书笔记.pdf VIP
- 北京-绅宝D70-产品使用说明书-绅宝D70 2.3T-C7230C7G-绅宝产品使用说明书.pdf VIP
- 《地下工程防水技术规范》(GB50108-2008).pdf
- 2023 【小升初分班】小升初数学分班测试卷 (通用版,含答案).pdf VIP
- DLT 1253-2013 电力电缆线路运行规程.pdf VIP
- 商务谈判毕思勇课程教案.pdf VIP
- 信息处理技术员教程(第三版)第6章 演示文稿基础知识.pptx VIP
文档评论(0)