为了使类型更易于查找和使用,避免命名冲突以及控制访问,程序员将相关类型的组捆绑到包(packages)中。
定义: 一个包是一组提供访问保护和名字空间管理的相关类型。请注意,类型是指类,接口,枚举和注解类型。枚举和注解类型分别是类和接口的特殊类型,因此本课中通常将类型简称为类和接口。
Java平台的类型是各种包的成员,这些包按功能捆绑了类:基本类在中java.lang,用于读写(输入和输出)的类在中java.io,依此类推。您也可以将类型放入包中。
假设您编写了一组代表图形对象的类,例如圆形,矩形,直线和点。您还可以编写一个接口Draggable,这些类可以实现用鼠标拖动它们。
//in the Draggable.java filepublic interface Draggable {...}//in the Graphic.java filepublic abstract class Graphic {...}//in the Circle.java filepublic class Circle extends Graphicimplements Draggable {. . .}//in the Rectangle.java filepublic class Rectangle extends Graphicimplements Draggable {. . .}//in the Point.java filepublic class Point extends Graphicimplements Draggable {. . .}//in the Line.java filepublic class Line extends Graphicimplements Draggable {. . .}
出于以下几个原因,应将这些类和接口捆绑在包中:
- 您和其他程序员可以轻松确定这些类型是否相关。
- 您和其他程序员知道在哪里可以找到可以提供图形相关功能的类型。
- 您的类型的名称不会与其他软件包中的类型名称冲突,因为该软件包会创建一个新的命名空间。
- 您可以允许包内的类型彼此不受限制地访问,但仍然限制包外的类型的访问。
