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