background image

{

...

          }
    生成两个类文件 MyClass.class 和 MyHelper.class。这些类文件一定在名字为 MyStuff 的
文件夹中。软件包的名称可以包含多个由英文句号分隔的标识符;名称的每一部分隐含着
一个独立的文件夹。比如,下面的代码表明:名称为 MySubPackage 的文件夹中有名称为
MyClass 的文件,还有,MySubPackage 文件夹在 MyStuff 文件夹中。

package MyStuff.MySubPackage;

    public class Myclass

{

...

}

    软件包的名称表明一个存放在特定路径下的特定的软件包,存放在不同文件夹中的同
名的软件包之间、或者不同软件包中同名的类之间都没有特殊的关系;在上面的第一个例
子中,软件包的名称是 MyStuff,第二个例子中软件包的名称是 MyStuff.MySubPackage。
一个软件包可以存放在另外一个软件包的子文件夹中,但是,这两个软件包中的类却没
有关系;类似的,MyStuff.MyClass 和 MyStuff.MySubPackage.MyClass 这两个类之间也没
有特殊的关系。
类路径
    类路径是一些文件夹(或目录)的序列,这些文件夹组合起来形成一个应用程序的默
认软件包;所有命名的软件包都可以在类路径上文件夹的子文件夹中找到,软件包文件
夹是类路径文件夹的一个子文件夹。比如,假定类路径由下面的文件夹组成:

C:\Windows\Java\Classes
C:\Windows\Java\Lib
C:\MyLibrary

    类文件 C:\Windows\Java\Classes\Utilities.class 就直接存放在默认的软件包中。
    现在,假定通过编译下面命名为 MyClass.class 文件中的几行代码来创建一个类路径上
的类文件:
package MyStuff;
public class MyClass
{

...

}
    MyStuff.MyClass 文件可能在以下文件夹的任意一个当中:

C:\Windows\Java\Classes\MyStuff*C:\windows\Java\Lib\MyStuff
C:\MyLibrary\MyStuff

    另外,大多数的 Java 虚拟机(VM)能够使用以 ZIP、JAR 或 CAB 形式存储的类文件,
不过,这些 ZIP、JAR 或 CAB 文件必须显式地列在类路径当中;这些压缩文件可以包含别
的文件,也可以包含带有许多子文件夹的文件夹的信息。
    可以用下面两个文件夹来更新类路径:

 C:\Windows\Java\Classes\Classes.ZIP
 C:\Library\MyClasses.CAB

    现在,类文件 MyClass.class 可能出现在 Classes.Zip 或者 MyClasses.CAB 中。如果它包括
在 MyClasses.CAB 中,则把它保存在子文件夹 MyStuff 中。