2012-06-03 86 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'中,但不能保证。这些类可以像任何其他类一样导入。

相关问题