Pergunta

Isso se aplica a subclasses de Applet, Servlet, Midlet, etc.

Por que eles não precisam de um main()? Se eu quisesse criar uma classe Craplet que começa em init() ou algo semelhante, é ruim design, ou como eu iria fazer sobre isso?

Foi útil?

Solução

É realmente um bom design, mas não óbvia eo que você quer fazer não teria nenhum efeito, por isso é um pouco contra-intuitivo.

Estes tipos de aplicações vivem suas vidas em recipientes e, como tal, os seus pontos de entrada são determinados pelas normas esses recipientes devem aderir. Os designers dessas normas optou por não chamar o principal ponto de entrada. Você colocaria sua funcionalidade em um método substituído. Todos os applets ter os quatro métodos seguintes:

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

Eles têm esses métodos porque sua superclasse, java.applet.Applet, tem esses métodos.

A superclasse não tem nada, mas código fictício nestes:

public void init() {}

Se você quiser derivar uma classe para estender ou mudar o nome de init() você deve implementar sua classe e ter o seu init() chamada de método. Isso iria usar polimorfismo para permitir que você chamar o método que quiser. A menos que você está escrevendo servlet container você provavelmente está perdendo seu tempo.

Outras dicas

Applets e Servlets não começar seu próprio processo. Em vez disso eles correm dentro de um recipiente. Portanto, eles fazem há necessidade de um método estático principal (que inicia o processo), mas uma maneira de interagir com o seu recipiente.

'main' é apenas uma convenção que C, C ++ e Java comumente apoiar, mas, por exemplo, se você escrever C ou C ++ diretamente contra a API Win32, você não tem que ter main (), mas em vez disso você tem WinMain.

O ambiente de execução de um applet (tipicamente, seu navegador) chama os métodos de applet em pontos diferentes dependendo do estágio em que de tornar a ela atingir. Isso proporciona um nível de abstração que é mais adequado para a web do que um método main() simples. Além disso, o lançamento arbitrárias programas Java com métodos main() normalmente seria considerado algo de um risco de segurança.

Applet não usam main (), porque quando applet é carregado, ele chama automaticamente certos métodos de miniaplicativo classe para iniciar e executa o código applet. e aplicação tem seu próprio ciclo de vida.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top