[完全掌握java中的包机制.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[完全掌握java中的包机制

完全掌握java中的包机制完全掌握java中的包机制包机制是java中特有的,也是java中最基础的知识。一些初学java的朋友,通常象学其它语言一样从教材上copy一些程序来运行,可是却常常遇到莫名其妙的错误提示。这些问题事实上都出在对包的原理不够清楚。本文将就此问题进行深入阐述。  一、为什么java中要有包的概念?  以一言概之,java中包的引入的主要原因是java本身跨平台特性的需求。因为java中的所有的资源也是以文件方式组织,这其中主要包含大量的 类文件需要组织管理。java中同样采用了目录树形结构。虽然各种常见操作系统平台对文件的管理都是以目录树的形式的组织,但是它们对目录的分隔表达方式 不同,为了区别于各种平台,java中采用了.来分隔目录。  二、java中包结构和平台的衔接  java中的资源存在于不同平台下时必然会有很大差异。因此跨平台的java包结构和平台之间必须通过一种方式来衔接到一起。事实上它们就是通过我们很熟悉的classpath的设置来衔接到一起的。举个例子:  我在Windows2000环境下的classpath设置如下:  classpath = d:\jdk1.4.2\lib\dt.jar; d:\cjm 类的衔接关系可以用下图来表达:  从图中可以看出,java中的类的组织是悬空的,这样的话,它们可以随意放在任意平台下,但是要在该平台下正确找到一个类,则必须使用 classpath来设置类所在目录的前面一部分(即区别于平台的部分)。在java中常常把一棵类树压缩成一个.jar文件,如图中的rt.jar,这 并不影响对类的查找,在指定环境变量时可以指定.jar文件所在目录,也可以具体指明.jar的完全查找路径,即上例中的classpath中也可描述 成: classpath = d:\jdk1.4.2\lib; d:\cjm 当正确设置了平台下的 classpath环境变量时,java跨平台的特性就体现出来了。即你在编写程序中,描述一个类时,就不用具体指明它的完整路径,而是仅仅指明java 中的类路径就可以了,即指出图1中竖线右边的查找路径就可以了。这样的话,你编写的程序拿到任何平台下时,只需要根据类文件的存放目录来书写相应的 classpath环境变量,而不用因为类的存放环境变化而修改程序。 注意:java中对于某个类的查找是把classpath中的每一项逐一连接,当一个连接能够正确找到相关类后,便不再向后查找。 三、正确使用包  在使用包的过程中有很多需要注意的小细节,这里把常见的问题都列举如下:  1、对类路径的设置通常有两种方法:  i)在系统的环境变量中设置,设置方法依据平台而变;  ii)以命令参数的形式来设置。  如:javac -classpath d:\jdk1.4.2\lib d:\cjm\edu\test\TestFile.java java -classpath .;d:\jdk1.4.2\lib; d:\cjm? edu.test.TestFile 注意:i)javac和java命令有很大区别,可以这样区分,javac是一个平台命令,它对具体的平台文件进行操作,要指明被编译的文件路径。而java是一个虚拟机命令,它对类操作,即对类的描述要用点分的描述形式,并且不能加扩展名,还要注意类名的大小写。  ii)有一个很奇怪的问题,即javac命令后面的classpath默认包含当前目录(符合windows的习惯),可是在java命令后面的classpath却不包含当前目录,所以在它的classpath中一定不能忘了加上当前目录的描述,即加上.。  2、在java程序中对类路径的描述用.分隔,而且也有当前目录的概念。如要运行图1中的TestFile必须指明为 edu.test.TestFile。但是如果在类TestFile中要调用和它在同一目录中的TestString,则不必指明目录前缀。  3、在java程序中所有使用到的类都应该清楚的指明这个类的查找路径。一般有两种方法指明:  i)在程序的开始使用import关键字指明。如类TestFile中要用到FileInputStream类,则在程序头中加入import java.io.FileReader; 或import java.io.*;  ii)在程序中用到FileFileReader类处直接写完整路径,如: java.io.FileFileReader fin = new java.io.FileReader(filename);  注意:java.lang包总是被默认导入的。  4、类的目录结构一定要和类中第一句包声明一致。如类TestFile.class对应的.java文件的第一句必须包含:package e

文档评论(0)

zhuanyewd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档