日期:2011-03-22 16:17:00 来源:本站整理
<b>java的包:库单元</b>[Java编程]
本文“<b>java的包:库单元</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
我们用import关键字导入一个完好的库时,就会得到“包”(Package).比方:
import java.util.*;
它的作用是导入完好的实用工具(Utility)库,该库属于尺度Java开辟工具包的一部份.由于Vector位于java.util里,所以目前要末指定完好名称“java.util.Vector”(可省略import语句),要末简单地指定一个“Vector”(因为import是默许的).
若想导入单独一个类,可在import语句里指定那个类的名字:
import java.util.Vector;
目前,我们可以安闲地利用Vector.但是,java.util中的其他任何类还是不可以利用的.
之所以要举行这样的导入,是为了供应一种特别的机制,以便管理“命名空间”(Name Space).我们全部类成员的名字彼此间城市断绝起来.位于类A内的一个办法f()不会与位于类B内的、拥有相同“签名”(自变量列表)的f()发生冲突.但类名会不会冲突呢?假定成立一个stack类,将它安装到已有一个stack类(由其他人编写)的机械上,这时会呈现什么情形呢?关于因特网中的Java利用,这种情形会在用户毫不知晓的时刻发生,因为类会在运行一个Java程序的时刻自动下载.
恰是由于存在名字潜在的冲突,所以分外有必要对Java中的命名空间举行完好的掌握,并且需求成立一个完好举世无双的名字,无论因特网存在什么样的限制.
迄今为止,本书的大大都例子都仅存在于单个文件中,并且计划成部分(本地)利用,没有同包名发生冲突(在这种情形下,类名置于“默许包”内).这是一种有效的做法,并且考虑到问题的简化,本书剩下的部份也将尽大概地采取它.但是,若筹划成立一个“对因特网友好”大概说“合适在因特网利用”的程序,必须考虑若何避免类名的反复.
为Java成立一个源码文件的时刻,它普通叫作一个“编辑单元”(有时也叫作“翻译单元”).每个编译单元都必须有一个以.java末尾的名字.并且在编译单元的内部,可以有一个大众(public)类,它必须拥有与文件相同的名字(包含大小写情势,但解除.java文件扩大名).假如不这样做,编译器就会报告出错.每个编译单元内都只能有一个public类(一样地,不然编译器会报告出错).那个编译单元剩下的类(假若有的话)可在那个包表面的世界眼前躲藏起来,因为它们并非“大众”的(非public),并且它们由用于主public类的“支持”类构成.
编译一个.java文件时,我们会得到一个名字完好相同的输出文件;但关于.java文件中的每个类,它们都有一个.class扩大名.因此,我们终究从少量的.java文件里有大概得到数目众多的.class文件.如从前用一种汇编语言写历程序,那么大概已习惯编译器先分割出一种过渡情势(普通是一个.obj文件),再用一个链接器将其与其他东西封装到一同(生成一个可履行文件),大概与一个库封装到一同(生成一个库).但那并非Java的工作方法.一个有效的程序就是一系列.class文件,它们可以封装和压缩到一个JAR文件里(利用Java 1.1供应的jar工具).Java注释器负责对这些文件的探求、装载和注释(注释①).
①:Java并没有强迫一定要利用注释器.一些固有代码的Java编译器可生成单独的可履行文件.
“库”也由一系列类文件构成.每个文件都有一个public类(并没逼迫利用一个public类,但这种情形最很典型的),所以每个文件都有一个组件.假如想将全部这些组件(它们在各自独立的.java和.class文件里)都归纳到一同,那么package关键字便可以施展作用).
若在一个文件的开首利用下述代码:
package mypackage;
那么package语句必须作为文件的第一个非注释语句呈现.该语句的作用是指出这个编译单元属于名为mypackage的一个库的一部份.大概换句话说,它表明这个编译单元内的public类名位于mypackage这个名字的下面.假如其他人想利用这个名字,要末指出完好的名字,要末与mypackage结合利用import关键字(利用前面给出的选项).注意按照Java包(封装)的约定,名字内的全部字母都应小写,乃至那些中间单词亦要如此.
比方,假定文件名是MyClass.java.它意味着在那个文件有一个、并且只能有一个public类.并且那个类的名字必须是MyClass(包含大小写情势):
package mypackage;
public class MyClass {
// . . .
目前,假若有人想利用MyClass,大概想利用mypackage内的其他任何public类,他们必须用import关键字激活mypackage内的名字,使它们可以利用.另一个办法例是指定完好的名称:
mypackage.MyClass m = new mypackage.MyClass();
import关键字则可将其变得简便得多:
import mypackage.*;
// . . .
MyClass m = new MyClass();
作为一名库计划者,一定要记着package和import关键字答应我们做的事情就是分割单个全局命名空间,保证我们不会碰到名字的冲突——无论有多少人利用因特网,也无论多少人用Java编写自己的类.
以上是“<b>java的包:库单元</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:成立举世无双的包名
- ·下一篇文章:java躲藏实施历程
- ·中查找“<b>java的包:库单元</b>”更多相关内容
- ·中查找“<b>java的包:库单元</b>”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论