Méthode principale de Java () expliquée

Méthode Java principale () expliquée

1. Vue d'ensemble

Chaque programme a besoin d'un endroit pour commencer son exécution; en parlant de programmes Java, c’est la méthodemain.

Nous sommes tellement habitués à écrire la méthodemain lors de nos sessions de code, que nous ne prêtons même pas attention à ses détails. Dans cet article rapide, nous analyserons cette méthode et montrerons d'autres façons de l'écrire.

2. Signature commune

Le modèle de méthode principal le plus courant est:

public static void main(String[] args) { }

C’est ainsi que nous l’avons appris, c’est ainsi que l’EDI remplit automatiquement le code pour nous. Mais ce n’est pas la seule forme que cette méthode peut prendre,there are some valid variants we can use et tous les développeurs ne prêtent pas attention à ce fait.

Avant de plonger dans ces signatures de méthode, examinons la signification de chaque mot-clé de la signature commune:

  • public - modificateur d'accès, ce qui signifie visibilité globale

  • static - la méthode est accessible directement depuis la classe, nous n'avons pas besoin d'instancier un objet pour avoir une référence et l'utiliser

  • void - signifie que cette méthode ne renvoie pas de valeur

  • main - le nom de la méthode, c'est-à-dire l'identifiant que JVM recherche lors de l'exécution d'un programme Java

Quant au paramètreargs, il représente les valeurs reçues par la méthode. C'est ainsi que nous passons des arguments au programme lorsque nous le démarrons pour la première fois.

Le paramètreargs est un tableau deStrings. Dans l'exemple suivant:

java CommonMainMethodSignature foo bar

nous exécutons un programme Java appeléCommonMainMethodSignature et passons 2 arguments:foo etbar. Ces valeurs sont accessibles à l'intérieur de la méthodemain en tant queargs[0] (ayantfoo comme valeur) etargs[1] (ayantbar comme valeur).

Dans l'exemple suivant, nous vérifions les arguments pour décider de charger les paramètres de test ou de production:

public static void main(String[] args) {
    if (args.length > 0) {
        if (args[0].equals("test")) {
            // load test parameters
        } else if (args[0].equals("production")) {
            // load production parameters
        }
    }
}

Il est toujours bon de se rappeler que les IDE peuvent également transmettre des arguments au programme.

3. Différentes façons d'écrire une méthodemain()

Voyons différentes manières d'écrire la méthodemain. Bien qu'elles ne soient pas très courantes, ce sont des signatures valides.

Notez qu'aucun de ceux-ci n'est spécifique à la méthodemain, ils peuvent être utilisés avec n'importe quelle méthode Java mais ils sont également une partie valide de la méthodemain.

Les crochets peuvent être placés près deString, comme dans le modèle commun, ou près deargs de chaque côté:

public static void main(String []args) { }
public static void main(String args[]) { }

Les arguments peuvent être représentés sous forme de varargs:

public static void main(String...args) { }

Nous pouvons même ajouterstrictfp pour la méthodemain(), qui est utilisée pour la compatibilité entre les processeurs lorsque vous travaillez avec des valeurs à virgule flottante:

public strictfp static void main(String[] args) { }

synchronized etfinal sont également des mots clés valides pour la méthodemain, mais ils n'auront aucun effet ici.

D'un autre côté,final peut être appliqué surargs pour empêcher la modification du tableau:

public static void main(final String[] args) { }

Pour terminer ces exemples, nous pouvons également écrire la méthodemain avec tous les mots clés ci-dessus (que, bien sûr, vous n'utiliserez probablement jamais dans une application pratique):

final static synchronized strictfp void main(final String[] args) { }

4. Avoir plusieurs méthodesmain()

On peut aussi définirmore than one main method inside our application.

En fait, certaines personnes l'utilisent comme une technique de test primitive pour valider des classes individuelles (bien que les frameworks de test commeJUnit soient bien plus indiqués pour cette activité).

Pour spécifier la méthodemain que la JVM doit exécuter comme point d'entrée de notre application, nous utilisons le fichierMANIFEST.MF. Dans le manifeste, nous pouvons indiquer la classe principale:

Main-Class: mypackage.ClassWithMainMethod

Ceci est principalement utilisé lors de la création d'un fichier exécutable.jar. Nous indiquons quelle classe a la méthodemain pour démarrer l'exécution, via le fichier manifeste situé àMETA-INF/MANIFEST.MF (encodé en UTF-8).

5. Conclusion

Ce didacticiel a décrit les détails de la méthodemain et d'autres formes qu'elle peut prendre, même celles qui ne sont pas très communes à la plupart des développeurs.

Gardez à l'esprit que,although all the examples that we’ve shown are valid in terms of syntax, they just serve the educational purpose et la plupart du temps, nous nous en tiendrons à la signature commune pour faire notre travail.