Frage

Dies gilt für Unterklassen von Applet, Servlet, Midlet usw.

Warum brauchen sie kein main()?Wenn ich ein erstellen wollte Craplet Klasse, die um beginnt init() oder so ähnlich, ist es schlechtes Design oder wie würde ich es machen?

War es hilfreich?

Lösung

Es wirklich gutes Design ist aber nicht klar, und was wollen Sie keine Wirkung zu tun haben würde, so ist es ein wenig unlogisch ist.

Diese Arten von Anwendungen leben ihr Leben in Containern und als solche ihre Eintrittspunkte von den Standards an jene Behälter bestimmt sind, müssen haften. Die Designer dieser Standards wählte nicht den Einstiegspunkt Haupt nennen. Sie würden Ihre Funktionalität in einer überschriebenen Methode platzieren. Alle Applets haben die folgenden vier Methoden:

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

Sie haben diese Methoden, weil ihre Oberklasse, java.applet.Applet, diese Methoden hat.

Die übergeordnete Klasse hat nichts aber Blindkode in diesen:

public void init() {}

Wenn Sie eine Klasse ableiten wollen zu verlängern oder den Namen init() ändern Sie Ihre Klasse implementieren sollten und Ihre Methodenaufruf init() haben. Dies würde Polymorphismus verwenden Sie die Methode nennen wir, was auch immer Sie mögen. Es sei denn, Sie Servlet-Container schreiben Sie wahrscheinlich verschwenden Ihre Zeit.

Andere Tipps

Applets und Servlets keine eigenen Prozess starten. Stattdessen laufen sie in einem Container. Daher sie keine Notwendigkeit, eine statische main-Methode (die den Prozess gestartet wird), sondern ein Weg mit ihrem Behälter zu interagieren.

‚main‘ ist nur eine Konvention, die C, C ++ und Java allgemein unterstützen, aber zum Beispiel, wenn Sie C oder C ++ direkt gegen den Win32-API zu schreiben, müssen Sie nicht Haupt haben (), sondern Sie haben WinMain.

Die Ausführungsumgebung eines Applets (normalerweise Ihr Webbrowser) ruft die Applet-Methoden an unterschiedlichen Stellen auf, je nachdem, in welchem ​​Stadium der Darstellung das Applet erreicht ist.Dies bietet eine Abstraktionsebene, die besser für das Web geeignet ist als eine einfache main() Methode.Darüber hinaus können beliebige Java-Programme mit gestartet werden main() Methoden würden normalerweise als ein Sicherheitsrisiko angesehen.

Applet nicht verwenden main (), weil, wenn Applet automatisch geladen wird, um bestimmte Methoden der Applet-Klasse ruft zu starten und führt den Applet-Code. und Applet hat einen eigenen Lebenszyklus.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top