这适用于小程序,Servlet中,MIDlet时,等等。

的子类

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

有帮助吗?

解决方案

这其实是很好的设计,但不是很明显,你想做的事没有任何作用是什么使这是一个有点反直觉的。

这些类型的应用过自己的生活容器中,因此它们的入口点是由标准确定这些容器一定要坚持。这些标准的设计者选择不调用入口点为主。你会把你的功能在被覆盖的方法。所有小应用程序有以下四种方法:

public void init();
public void start();
public void stop();
public void destroy();

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

在超类没有任何东西,但哑代码在这些:

public void init() {}

如果您希望派生类扩展或改变init()的名字,你应该实现你的类和你的方法调用init()。这将使用多态,让你拨打任何你喜欢的方法。除非你正在编写servlet容器,你很可能浪费你的时间。

其他提示

Applet和Servlet的不启动自己的过程。相反,他们一个容器内运行。因此,他们做不需要的静态主方法(启动处理),但方式与他们的容器相互作用。

“主”仅仅是C,C ++和Java通常支持一个惯例,但是,例如,如果你写C或C ++直接针对的Win32 API,则不必具有主(),但相反,您有WinMain函数。

一个小程序的执行环境(通常是Web浏览器)来电取决于渲染它达到什么阶段不同点的小应用程序的方法。这就提供了抽象这更适合网络不是一个简单的方法main()的水平。此外,启动任意的Java程序与main()方法通常会被认为是一个安全隐患的东西。

小程序不使用主要(),因为当小程序被加载它自动调用小应用程序的类的某些方法来启动并执行Applet代码。 和小应用程序具有其自己的生命周期。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top