一个类可能需要另一个类声明的对象作为自己的成员或方法中的局部变量,如果这两个类在同一个包中,自然没有问题,但是,如果这两个类不在同一个包中,这时必须使用import语句。
引入类库中的类
使用import语句可以引入包中的类,在编写源文件时,除了自己编写类外,经常需要使用Java提供的许多类,这些类可能在不同的包中。
为了能使用Java提供的类,可以使用import语句引入包中的类。在一个Java源程序中可以有多个import语句,它们必须写在package语句(假如有package语句的话)和源文件中类的定义之间,Java提供了大约130多个包。
例如:
java.lang包含所有的基本语言类
java.io包含所有的输入输出类
java.util包含实用类
java.sql包含操作数据库的类
java.net包含所有实现网络功能的类
如果要引入一个包中的全部类,则可以用通配符号星号(*)来代替,例如:
importjava.util.*;//表示引入java.util包中所有的类importjava.util.Date;//表示引入java.util包中的Date类
引入自定义包中的类
用户程序也可以使用import语句引入非类库中有包名的类,例如:
importtom.jiafei.*;
用户为了使自己的程序能使用tom.jiafei包中的类,可以在classpath中指明tom.jiafei包的位置,假设包tom.jiafei的位置是C:1000,即包名为tom.jiafei的类的字节码存放在C:1000tomjiafei目录中。用户可以更新classpath的值,例如:
setclasspath=C:jdk1.6jrelibrt.jar;.;C:1000/*表示可以加载C:1000目录中的无名包类且C:1000目录下的子孙目录可以作为包的名字来使用*/
如果用户不想更新classpath的值,那么用户可以在用户程序所在目录下建立和包相对应的子目录结构。
例如:用户程序中某个类所在目录是C:2000,该类想使用import语句引入tom.jiafei包中的类,那么根据包名建立目录结构C:2000tomjiafei,就不用去修改classpath的值,因为默认的classpath的值为:
C:jdk1.6jrelibrt.jar;.;/*“.;”表示可以加载应用程序当前目录中的无名包类且当前目录下的子孙目录可以作为包的名字来使用*/