→阿童沐

財富==支撐一個人生存多長時間的能力!

导航

<JavaSE 详解>:包-

1、包(package):用于将完成不同功能的类(.class文件)分门别类,放在不同的目录(包)下。

包的命名规则:将公司域名反转作为包名。

例如:域名:www.google.com.hk,因此包名可以是:hk.com.google,其右侧仍然可以加入子包名。

2、包反应在硬盘上对应于目录结构,其目录结构是针对.class文件而言的,而非.java文件,即通过javac编译之后的.class文件要在硬盘上复合包所定义的目录结构,但是对于源文件.java,是没有这种约定的,可以放在任何目录上进行编译,但在执行.class的时候,需要“包名.类名”。

对于包名,每个字母都需要小写(约定)。例如:hk.com.google.goodboy    二十六-05:00

包实际在各个操作系统中就是对应一个个的目录,用于将各个相关类(表现为.class文件)分类。

 

3、如果定义类的时候没有使用package,那么Java就认为我们所定义的类位于默认包中(default package);

 

4、编译带有package声明的Java源文件有两种方式:

  a> 直接编译,然后根据类中所定义的包名,逐一手工建立与包名相对应的目录结构,最后将生成的.class文件放到该目录结构中(麻烦,很少使用);

  b> 使用编译参数“-d”,使用方式为 javac -d <目录> <Java源文件名>,这样在编译后,编译器会自动帮助我们建立好包所对应的目录结构。

 

5、有两个包名,分别是 aa.bb.cc 与 aa.bb.cc.dd,那么我们称后者为前者的子包。

 

6、导入(import):将使用package分离的各个类导入到当前.java源文件中,让编译器能够找到所需要的类。

  语法:import cn.edu.bupt.PackageTest;

  注意事项import aa.bb.*(中的.class文件) 并不会导入 aa.bb.cc包下面的类(子包中的.class文件)。即导入某个包中所有类并不会导入其子包中的所有类。

  如果想导入,则需要这样写:

import aa.bb.*;
import aa.bb.cc.*;

 

7、关于packageimportclass在一个Java源文件中的顺序问题:

  a> 首先需要定义package,可选;

  b> 然后使用import进行导入,可选;

  c> 最后classinterface的定义。

 

8、如果两个类在同一个包下面定义,那么则不需要导入,直接使用即可;如果两个类在不同的包下面定义,那么则需要使用“包名.类名” 或 通过import使用目标类。

 

posted on 2012-02-19 09:20  阿童沐  阅读(244)  评论(0)    收藏  举报