【问题标题】:What are Imported class files and from where do they get imported from?什么是导入的类文件,它们从哪里导入?
【发布时间】:2012-06-03 14:03:39
【问题描述】:

import classes 是什么意思,它们是从哪里导入的?

例子

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?

【问题讨论】:

  • 来自 Java 运行时环境;它们是 Java 自身提供的类。
  • 来自classpath。 JDK(java.lang.* 等的来源)隐含在 JVM 的类路径中。
  • 类路径?老兄,如果我输入 /java/util/Vector.class 它不起作用
  • 此“Game.class”中仅有的 2 个文件夹是 litcom 和 game,然后是游戏文件夹中的 sprite 文件夹
  • 我们不能通过在这里回答一个问题来教你整个 Java 基础。去读吧。

标签: java class import


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      导入的类(通常)来自类路径中的 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();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-16
        • 2023-04-05
        相关资源
        最近更新 更多