Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么小程序不需要main()?_Java_Applet_Main - Fatal编程技术网

Java 为什么小程序不需要main()?

Java 为什么小程序不需要main()?,java,applet,main,Java,Applet,Main,这适用于Applet、Servlet、Midlet等的子类 为什么他们不需要一个main()?如果我想创建一个从init()开始的Craplet类或类似的类,这是一个糟糕的设计,还是我该怎么做?小程序和servlet不会启动它们自己的进程。相反,它们在容器中运行。因此,它们不需要静态的main方法(启动流程),而需要一种与容器交互的方式。小程序(通常是您的web浏览器)的执行环境在不同的点调用小程序方法,具体取决于呈现过程的阶段。这提供了一个比简单的main()方法更适合web的抽象级别。此外,

这适用于Applet、Servlet、Midlet等的子类


为什么他们不需要一个
main()
?如果我想创建一个从
init()
开始的
Craplet
类或类似的类,这是一个糟糕的设计,还是我该怎么做?

小程序和servlet不会启动它们自己的进程。相反,它们在容器中运行。因此,它们不需要静态的main方法(启动流程),而需要一种与容器交互的方式。

小程序(通常是您的web浏览器)的执行环境在不同的点调用小程序方法,具体取决于呈现过程的阶段。这提供了一个比简单的
main()
方法更适合web的抽象级别。此外,使用
main()
方法启动任意Java程序通常会被认为是一种安全风险。

这实际上是一种很好的设计,但并不明显,您想要做的事情不会产生任何效果,因此有点违反直觉

这些类型的应用程序生活在容器中,因此其入口点由容器必须遵守的标准确定。这些标准的设计者选择不将入口点称为main。您将把您的功能放在一个重写的方法中。所有小程序都有以下四种方法:

public void init();
public void start();
public void stop();
public void destroy();
它们有这些方法,因为它们的超类java.applet.applet有这些方法

超类中只有伪代码:

public void init() {}

如果您想要派生一个类来扩展或更改
init()
的名称,您应该实现您的类并让您的方法调用
init()
。这将使用多态性让您可以随意调用该方法。除非你写的是servlet容器,否则你可能会浪费你的时间。

“Mead”只是C、C++和java通常支持的一种约定,但是例如,如果你直接写C++或C++来处理Win32 API,你就不必拥有主(),而是你有WinMeun. Applet不使用main(),因为加载Applet时,它会自动调用Applet类的某些方法来启动并执行Applet代码。
小程序有它自己的生命周期。

我一直认为它只是一个约定,但是+1表示真的。。。当名字是最好的选择时我很生气。。。为什么他们不把它命名为没有参数的main呢?至少WinMain有一些作为入口点的参考。但我认为这是不同的,因为WinMain实际上是负责人,而不是奴隶。我想你是对的。