为什么applet不需要main()?

Luc*_*cky 11 java applet program-entry-point

这适用于Applet,Servlet,Midlet等的子类.

为什么他们不需要main()?如果我想创建一个Craplet始于类init()或类似的东西,它是不好的设计,不然我怎么会去这样做呢?

ojb*_*ass 17

它实际上是很好的设计,但并不明显,你想做的事情没有任何效果,所以它有点反直觉.

这些类型的应用程序以容器为生,因此它们的入口点由容器必须遵守的标准决定.这些标准的设计者选择不将入口点称为主要.您可以将您的功能放在重写方法中.所有applet都有以下四种方法:

public void init();
public void start();
public void stop();
public void destroy();
Run Code Online (Sandbox Code Playgroud)

他们有这些方法,因为他们的超类java.applet.Applet,有这些方法.

超类中除了虚拟代码之外没有任何东西:

public void init() {}
Run Code Online (Sandbox Code Playgroud)

如果您想派生一个类来扩展或更改init()您的名称,那么应该实现您的类并调用方法init().这将使用多态来让你随心所欲地调用方法.除非您正在编写servlet容器,否则您可能会浪费时间.


kgi*_*kis 12

Applet和Servlet不会启动自己的进程.相反,它们在容器内运行.因此,它们不需要静态主方法(启动过程),而是需要与容器交互的方法.