En java, ai-je toujours besoin d'une classe Principale?


Je sais que j'aurai besoin d'une méthode principale, mais cette méthode principale peut-elle être dans une classe différente de la classe principale?

Author: Ethan Watson, 2016-01-27

3 answers

Toutes les applications Java ne nécessitent pas une méthode principale.

Java peut également être utilisé pour créer des applications Web, par exemple, qui ne nécessitent pas de méthodes principales pour s'exécuter.

La réponse à votre question dépend de ce que vous voulez dire exactement. Voulez-vous dire une classe avec le nom "Principal"? Alors, non, il n'y a aucune exigence pour cela.

La seule exigence de Java est que la signature de la méthode soit correcte. la méthode principale doit:

  • être public
  • être principal
  • être statique
  • ont returntype void
  • accepte un tableau de chaînes comme (seulement) paramètre

, Il est plus facile de l'ajouter dans la classe publique dans un fichier, mais pas obligatoire. Le nom de la classe dans laquelle il se trouve dépend entièrement de vous, bien que beaucoup choisiront un nom comme 'Main' ou 'Open', simplement pour le trouver plus facilement.

Si vous voulez pouvoir exécuter votre application, en double-cliquant simplement sur le .fichier jar, vous devrez pointer vers la classe qui contient la méthode main (à utiliser: votre application peut contenir beaucoup de classes principales, utilisées pour des tests internes, mais un seul peut être utilisé pour démarrer l'application réelle) dans le fichier manifeste: fichiers Manifest

Avant Java 7, il était possible d'exécuter une application de bureau sans méthode principale, en (ab)utilisant un bloc d'instanciation, mais cela a été supprimé à partir de Java 7, car ce n'est pas à cela que le bloc d'instanciation était destiné.

 5
Author: Stultuske, 2016-01-27 07:26:07

Il n'est pas nécessaire de définir la méthode yout main dans une classe main. Vous pouvez placer votre méthode principale où vous voulez, tant que la syntaxe que je corrige:

public static void main (String[] args){
//...
} 
 0
Author: i23, 2016-01-27 07:14:30

Vous ne le faites absolument pas.

La méthode elle-même peut être placée où vous le souhaitez, il n'y a pas de limitation.

Cependant, personnellement, je recommanderais de le mettre dans une classe qui contient au moins quelque chose comme "Main", car lorsque les autres regardent votre code, et qu'ils n'utilisent pas unE qui prend en charge le saut vers la méthode main, les gens ont généralement plus de facilité à trouver votre point de départ.

Cependant, c'est juste pour des raisons de lisibilité, et comme je l'ai dit, sauter à main est / devrait être généralement une fonctionnalité prise en charge généralisée

 0
Author: Sossenbinder, 2016-01-27 07:20:34