我注意到向包含 java 应用程序中的 main 方法的类添加一个非静态方法,然后从 main 方法中调用它,会导致编译错误。这我可以理解,因为这个类永远不会被实例化。
但是,将非静态方法添加到 Applet 类并从内部调用它,例如,paint 方法可以正常工作。为什么是这样?applet-class 是由 appletviewer 以某种方式实例化的,还是有另一种解释来解释为什么前者不允许而后者是?
我注意到向包含 java 应用程序中的 main 方法的类添加一个非静态方法,然后从 main 方法中调用它,会导致编译错误。这我可以理解,因为这个类永远不会被实例化。
但是,将非静态方法添加到 Applet 类并从内部调用它,例如,paint 方法可以正常工作。为什么是这样?applet-class 是由 appletviewer 以某种方式实例化的,还是有另一种解释来解释为什么前者不允许而后者是?
applet-class 是否由 appletviewer 以某种方式实例化
绝对地。请参阅Applet 教程的“Applet 的生命周期”部分。尤其:
作为加载小程序的结果,您应该看到文本“正在初始化...开始...”。加载小程序时,会发生以下情况:
- 创建了applet 控制类(Applet 子类)的一个实例。
- 小程序自行初始化。
- 小程序开始运行。