2012-06-03 122 views
-1

什麼是導入類的意義和從哪裏進口?什麼是導入的類文件以及它們從哪裏導入?

package game; 

import game.sprites.PlayerSprite; 
import java.applet.Applet; 
import java.awt.*; 
import java.io.*; 
import java.net.URL; 
import java.util.Vector; 
import litecom.Trace; 
import litecom.gfxe.LoaderTarget2; 
import litecom.gfxe.Timer; 
import litecom.scoreclient2.ScoreClient2; 

現在我知道從哪裏LoaderTarget2.class ScoreClient2.class和Timer.class從進口。它們是從它自己的「遊戲」類中導入的,路徑是/litecom/gfxe/Timer.class。但Vector.class從哪裏來?或URL.class或Applet.class?

+0

從Java運行時環境;它們是由Java本身提供的類。 –

+0

來自'classpath'。 JDK(其中'java.lang。*'等)來自JVM的類路徑。 – Bohemian

+0

classpath?老兄,如果我輸入/java/util/Vector.class它不起作用 –

回答

0

Vector.class,URL.class和Applet.class是從java類庫中導入的,可以在「rt.jar」中找到。

0

導入的類來自通常位於類路徑中的JAR文件。 import一種告訴編譯器你的代碼需要外部代碼和哪個代碼的方法。

考慮:

Bug b = new Bug(); 

是有效的,但在那裏沒有錯誤()獲取定義?編譯器會查看您的導入,直到它在定義Bug的類路徑中找到一個類。

另外,請記住,類路徑中的文件路徑和java類的位置/包沒有關係。在Bug示例中,假設Bug類在bug.jar中,並且Bug的包是this.that.Bug。 bug.jar可以在文件系統的任何地方,權限允許。類路徑只需包含它的位置。在java中,我們引用類的包,而不是它們的物理位置。所以,無論在哪裏bug.jar生活中的文件系統上,我可以隨時導入this.that.Bug,或者如果必要,請參閱類明確:

this.that.Bug b = new this.that.Bug(); 
0

當您啓動JRE,默認情況下是有引導類加載器。引導類加載器包含由該語言定義的所有類。它們通常位於Java安裝中的文件名'classes.jar'或'rt.jar'中,但不能保證。這些類可以像任何其他類一樣導入。

相關問題