一個類別可能需要另一個類別聲明的物件作為自己的成員或方法中的局部變量,如果這兩個類別在同一個套件中,則自然沒有問題,但是,如果這兩個類別不在同一個套件中,這時必須使用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;.;/*“.;”表示可以載入應用程式目前目錄中的無名包類別且目前目錄下的子孫目錄可以作為包的名字來使用* /