设为首页 加入收藏

TOP

4.7.3 将类放入包中
2013-10-07 00:26:07 来源: 作者: 【 】 浏览:56
Tags:4.7.3 放入 包中

4.7.3   将类放入包中

要想将一个类放入包中,就必须将包的名字放在源文件的开头,包中定义类的代码之前。例如,例4-7中的文件Employee.java开头是这样的:

  

如果没有在源文件中放置package语句,这个源文件中的类就被放置在一个默认包(defaulf package)中。默认包是一个没有名字的包。在此之前,我们定义的所有类都在默认包中。

将包中的文件放到与完整的包名匹配的子目录中。例如,com.horstmann.corejava包中的所有源文件应该被放置在子目录com/horstmann/corejava(Windows中com\horstmann\corejava)中。编译器将类文件也放在相同的目录结构中。

例4-6和例4-7中的程序分放在两个包中:PackageTest类放置在默认包中;Employee类放置在com.horstmann.corejava包中。因此,Employee.class文件必须包含在子目录com/horstmann/ corejava中。换句话说,目录结构如下所示:

 

要想编译这个程序,只需改变基目录,并运行命令

 

编译器就会自动地查找文件com/horstmann/corejava/Employee.java并进行编译。

下面看一个更加实际的例子。在这里不使用默认包,而是将类分别放在不同的包中(com. horst-mann.corejava和com.mycompany)。

  

在这种情况下,仍然要从基目录编译和运行类,即包含com目录:

 

需要注意,编译器对文件(带有文件分隔符和扩展名.java的文件)进行操作。而Java解释器加载类(带有.分隔符)。

警告:编译器在编译源文件的时候不检查目录结构。例如,假定有一个源文件开头有下列语句:

即使这个源文件没有在子目录com/mycompany下,也可以进行编译。如果它不依赖于其他包,就不会出现编译错误。但是,最终的程序将无法运行,这是因为虚拟机找不到类文件。

 

例4-6 PackageTest.java
 
 

例4-7 Employee.java
  
  
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.4.3 静态方法 下一篇4.9.1 注释的插入

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: