没有 class 的 Java2D 方法调用

Java2D method call without class

我刚开始学习Java,试着画了一些矩形。

我有 运行 this 示例,但无法理解一件事: class ShapesDemo2D 有一个构造函数:

public void init() {
    //Initialize drawing colors
    setBackground(bg);
    setForeground(fg);
}

我明白setBackground是一种方法

这是 Component.java 文件中抽象组件 class 的一个方法。

但是Component是抽象的class,所以不能实例化,也不能调用它的方法

您忘记了 class 代码顶部的 ShapesDemo2D extends JApplet,这意味着 class 扩展了 另一个 class、JApplet 等上述方法中的代码有效地调用了 super.setBackground(bg);super.setForeground(fg);。超级 class、JApplet 这些方法,因为根据 JApplet API,class 从具有这些方法的组件扩展,这意味着 ShapesDemo2D 将也继承了方法

话虽如此,请抛弃本教程,因为小程序不再受支持,是已死技术并且已死时间最长时间,学习一门死技术是没有意义的。


旁注,您声明:

class ShapesDemo2D has a constructor:

public void init() {
    //Initialize drawing colors
    setBackground(bg);
    setForeground(fg);
}

但这实际上不是构造函数而是一种方法。 ShapesDemo2D class 的构造函数如下所示:

public ShapesDemo2D() {
    // .....
}

这似乎是一种迂腐的区分,但编程就是要尽可能准确地使用您的思维和代码。 Java 编译器严格且无情,您也必须如此。