·当在文件的起始处写package mypackage;就表示你在声明该编译单元是名为mypackage的程序库的一部分。换句话来说,你正在声明该编辑单元中的public类名位于mypackage名称保护伞下 。
·如果源文件中省略了package语句,那么源文件中定义命名的类被隐含地认为是无名包的一部分,即源文件中定义的命名的类在同一个包中,但该包没有名字。--因此可以应用位于同一目录下,在不是同一个源文件(同样没有package)的来创建对象。如果你的源文件声明的包名为package tom.jiafei;,必须把源文件保存在目录 ····/tom/jiafei/中,编译时要在tom/jiafei/目录下进行编译,如c:/1000/tom/jiafei>javac 类名.java或者c:/1000>javac tom/jiafei/类名.java。编译生成此目录下的.class文件。运行时必须到c:/1000>java tom.jiafei.类名。如果你在类所在的目录下运行会抛出异常。因为起了包名,类的全名已经是:包名.类名。
·可以使用import语句引入自己的包。为了使程序使用tom.jiafei包中的类,必须在classpath中指明包的位置。例如,包tom.jiafei位于c:/1000下,因此必须更新classpath路径,s加入c:/1000