文档介绍:*面向WEB的JAVA语言程序设计天津职业技术师范大学2013年4月23日第3章包“包”指的是一组提供访问保护和命名空间管理的相关的类型。注意这里的“类型(types)”指的是类、接口、枚举以及注解类型。枚举和注解类型分别是特殊的类和接口,所以在本章中,涉及到“类型”时简单地指类和接口。本章讲解如何将类和接口封装到一个包中、如何使用包中的类、以及如何组织自己的文件系统使得编译器能够找到源文件。利用面向对象技术开发一个实际的系统时,通常需要定义许多类共同工作,为了更好地管理这些类,Java中引入了包的概念。就像文件夹(目录)把各种文件组织在一起,使硬盘更清晰、有条理一样,Java中的包把各种类组织在一起,使得程序功能清楚、结构分明。特别地,使用包可以有利于实现不同程序间类的复用。包是一种松散的类的集合。一般不要求处于同一个包中的类有明确的相互关系,如包含、继承等,但是由于同一包中的类在缺省情况下可以互相访问,所以为了方便编程和管理,通常把需要在一起工作的类放在一个包里。例如前面使用过的类PhoneCard、Number-PhoneCard和D200-Card等就可以放在同一个包中。:如果一个具有100多人的单位,没有任何的部门和科室,管理一定会陷于混乱。同样,当一个程序中包含100多个类时,如果不将它们按其用途分门别类组织在不同的文件夹中,那么开发工作也将一片混乱。为了使得各种类型易于查找和使用,避免命名冲突,并控制访问,程序员将一组相关的类型封装到包(package)中。,需要为包选择一个名称,并将一个package语句和包的名称放在每一个想要放到包中的源文件(包含各种类型:类、接口、枚举和注解类型)的顶部。其中package为关键字。所有的包名都是小写。。例如,在上一节创建的各种与图形相关的类,都放到同一个包graphics中,那么需要在每一个源文件中的顶部包含以下代码:packagegraphics;,所以很有可能许多程序员将使用相同的名称来命名不同的类型。实际上,在上一节的例子就是这样的:作者定义了一个Rectangle类,。,以避免与类名或接口名冲突。对公司来说,域名来开始其包名。在一个公司内部发生的命名冲突,需要按照该公司的规定来处理。在缺省情况下,,,它们之间可以相互引用非private的域或方法。但是由于这个无名包是没有名字的,所以它不能被其他包所引用,即无名包中的类不能被其他包中的类所引用和复用。为了解决这个问题,可以创建有名字的包。创建包的语句需要使用关键字package,。 package包名;