Java-包(package)
Java 包(package)
为了更好的组织类,Java 提供了包机制,用于区别类名的命名空间。
包的作用
- 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
- 如同文件夹一样,包也采用了树形目录的存储方法。同一个包中的类名是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应加上包名加以区别。因此,包可以避免名字冲突。
- 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
包的语法格式为:
1 | package pkg1.[pkg2.[pkg3...]]; |
package(包)的作用是把不同的Java 程序分类保存,更方便的被其他 Java 程序调用。一个包(package)可以定义位一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。
以下是一些Java 中的包:
java.lang - 打包基础的类
java.io - 包含输入输出功能的函数
开发者可以自己把一组类和接口等打包,并定义自己的包。而且在实际开发中这样是值的提倡的,当你自己完成类的实现之后,将相关的类分组,可以让其他的编程者更容易地确定哪些类、接口、枚举和注释是相关的。
由于包创建了新的命名空间(namespace),所以不会跟其他包中的任何名字产生命名冲突。使用这种机制,更容易实现访问控制,并且定位类更加简单。
创建包
创建包的时候,你需要为这个包取一个适合的名字。之后,如果其他的一个源文件包含了这个包提供的类、接口、枚举或者注释类型的时候,都必须将这个包的声明放在这个源文件的开头。
包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。
如果一个源文件中没有使用包声明,那么其中的类、函数、枚举、注释等将被放在一个无名的包(default package)中。
例如:
通常用小写的字母来命名避免与类、接口名字的冲突。
import 关键字
为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用“import”语句完成此功能。
在 Java 源文件中 import 语句应该再 package 语句之后,所有类的定义之前,可以没有,可以有多余。其语法为:
1 | import package1[.package2…].(classname|*); |
可以使用通配符 “*”号。
注意:类文件中可以包含任意数量的import 声明。import 声明必须在包声明之后,类声明之前。