Comment pouvez-vous expliquer très bien, à un débutant, la signification de String args[]
et l'utilisation de static
dans l'extrait suivant ?
class FirstApp {
public static void main(String[] args) {
...
}
}
Je conseillerais à un débutant de consulter l'article [Wiki sur la fonction Main] (http://en.wikipedia.org/wiki/Entry_point#Java), puis de le compléter avec ceci.
Java ne commence à exécuter un programme qu'avec la signature spécifique public static void main(String[] args)
, et on peut considérer une signature comme son propre nom - c'est ainsi que Java peut faire la différence entre le main()
de quelqu'un d'autre et le seul vrai main()
.
String[] args
est une collection de String
, séparés par un espace, qui peuvent être tapés dans le programme sur le terminal. Le plus souvent, le débutant ne va pas utiliser cette variable, mais elle est toujours là, au cas où.
Si j'expliquais cela à quelqu'un, je lui dirais que nous y viendrons plus tard ; pour l'instant, vous devez savoir que la façon d'exécuter votre programme est d'utiliser :
public static void main(String[] args) {
...
}
En supposant qu'il/elle sache ce qu'est un tableau, je dirais que args est un tableau d'arguments et que vous pouvez montrer quelques exemples intéressants.
Ensuite, après avoir abordé Java/JVM et d'autres sujets, vous pourrez parler des modificateurs, et éventuellement de static et public.
Vous pourrez alors passer un peu de temps à parler de la signification de ces éléments.
Vous pourriez mentionner d'autres choses " cool ", comme les varargs, que vous pourrez utiliser dans les versions ultérieures de Java.
public static void main(String ...args) {
//...
}
Pour garder l'attitude du débutant, vous pouvez expliquer que toute la ligne de commande est automatiquement divisée en un tableau de chaînes de caractères (les String[]
).
Pour static
vous devez expliquer, que ce n'est pas un champ comme un autre : il est unique dans la JVM même si vous avez des milliers d'instances de la classe.
Donc main
est statique, parce que c'est la seule façon de le trouver (lié dans sa propre classe) dans un jar
.
... après avoir regardé le codage, et votre travail commence ...