-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?

4

3 回答 3

0

Vector.class 、 URL.class 和 Applet.class 是从 "rt.jar" 中的 java 类库导入的。

于 2012-06-03T14:08:32.423 回答
0

导入的类(通常)来自类路径中的 JAR 文件。 import一种告诉编译器您的代码需要外部代码以及哪些代码的方法。

考虑:

Bug b = new Bug();

是有效的,但 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();
于 2012-06-03T14:08:53.623 回答
0

启动 JRE 时,默认情况下有一个引导类加载器。引导类加载器包含该语言定义的所有类。它们通常存在于 Java 安装中的文件名“classes.jar”或“rt.jar”中,但不能保证。这些类像任何其他类一样是可导入的。

于 2012-06-03T14:09:20.023 回答