package的中文意思是“包”,它是一个比较抽象的逻辑概念,其宗旨是把 .java 文件(Java源文件)、.class 文件(编译后的文件)以及其他resource文件(例如.xml文件、.avi文件、.mp3文件、.txt文件等)有条理地进行一个组织,以供使用,它类似于Linux文件系统有一个根,从根开始有目录和文件,然后目录中嵌套目录。
具体而言,package主要有以下两个作用:
- 提供多层命名空间,解决命名冲突,通过使用package,使得处于不同package中的类可以存在相同的名字;
- 对类按功能进行分类,使项目的组织更加清晰。
当开发一个非常多的类的项目时,如果不使用package对类进行分类,而是把所有类都放在一个package下,这样的代码不仅可读性差,而且可维护性也不好,会严重影响开发效率。
package的用法一般如下(源文件所在目录为当前目录):
- 在每个源文件的开头加上"package packagename;",然后源文件所在目录下创建一个新目录,名称为packagename目录;
- 用javac指令编译每个sourcename.java源文件,将生成的sourcename.classname文件复制到packagename目录;
- 用java指令运行程序:java packagename.sourcename。
以下是一个简单的程序示例:
package com.pkg;
public class TestPackage{
public static void main(String[] args){
System.out.println("Hello world");
}
}
/*
通过运行指令javac -d . TestPackage.java编译代码,会在当前目录下自动生成目录com/pkg,然后通过运行指令java com.pkg.TestPackage执行程序,程序运行结果为:Hello world
*/