La méthode principale appartient-elle à une classe?Est-ce que la méthode principale appartient à n'importe quelle classe?
Répondre
Appartient à une classe. Regardez n'importe quelle implémentation de Hello-World et ce serait clair pour vous.
public static void main(String[] args) {
System.out.println("Hello World");
}
ne compilera pas tel quel. Vous devez mettre class HelloWorld { ... }
autour de lui, auquel cas vous pouvez dire que la méthode principale "appartient" à la classe HelloWorld
.
Cependant, étant donné qu'il est statique, il n'appartient pas à un objet particulier. Il existe une différence importante entre les classes et les objets que vous devez connaître lorsque vous travaillez avec des langages orientés objet. Learning Java: Objects and Classes est un bon point de départ.
Chaque ligne de code Java (sauf import/package) vit dans une classe (ou est une déclaration de classe/interface). Il en est de même pour main
.
Qu'en est-il de 'import' ou' package'? ;-) –
Modifié. Merci. – miku
Qu'en est-il des commentaires? ;-) –
Oui. Chaque méthode ou champ doit appartenir à une classe (ou interface/enum).
En Java, toute application doit avoir la méthode main
dans l'une des classes. Et il doit être exactement de la formule:
Voir plus in official lessons.
Si vous comptez une application Web en tant qu'application, ce n'est pas le cas. Une application Web n'a pas besoin d'une méthode 'main'. –
Mais pour exécuter votre application Web, une méthode 'main()' doit avoir été exécutée ... vous n'avez pas eu besoin de l'écrire. – Dolph
Si vous voulez dire si elle appartient à chaque classe, ce n'est pas le cas. Il appartient à la classe où vous le définissez.
Mais n'importe quelle classe peut avoir une méthode statique main
.
son pas comme cette méthode principale appartient à une classe spécifique, il appartient à cette classe dans laquelle nous définissons la méthode principale. il peut s'agir de n'importe quelle classe
Toute classe dans java peut avoir un objet public void principal (String [] args). La fonction principale déclarée dans une classe (comme toute autre méthode statique) appartient à la définition de classe mais pas à son instance d'instanciation.
Si vous construisez un fichier JAR à partir d'une collection de classes, vous pouvez spécifier quelle classe dans le fichier JAR contient l'application principale méthode dans le META-INF/Manifest.mf utilisant le
Main-Class: fully qualified name of class (example: ie.mycode.MyApp)
Lorsque vous exécuter la commande
java -jar [your jar file]
Il va regarder le manifest et commencer à exécuter le code spécifié dans le main pour l'objet Main-Class.
Comme mentionné précédemment, il fait partie d'une classe, mais pas classe
Si votre classe en la "unnammed" or "default" package, vous principale méthode ne sera pas à call any other Java classes de cette classe initiale avec sa principale méthode().
Bien que cela puisse fonctionner, cela limitera considérablement ce que vous pouvez réellement faire dans cette méthode main
.
donc ne pas utiliser une classe (i, e, pas un dans le package par défaut)
main
est une méthode normale. La seule convention est que Java peut utiliser cette méthode (et seulement cette) pour «démarrer» une application. Si vous passez une classe à java.exe, elle essaie de refléter cette méthode (c'est pourquoi la signature de la méthode est absolument stricte!) Et l'invoque (si elle est trouvée). Ceci, en fait va «démarrer une application» (iaw: le premier thread).
Il doit appartenir à une classe, comme toute méthode, et doit être dans la classe que vous souhaitez exécuter après la compilation.
Les programmes ne peuvent commencer par l'exécution d'une classe qui a une méthode principale (note:. C'est applicale pour la plupart des types d'applications Java Applets, par exemple, fonctionnent différemment)
Lorsque nous essayons d'exécuter une classe dont chemin n'est pas connu de la machine virtuelle Java, vous obtenez une erreur/exception quelque chose comme ci-dessous
Exception in thread main: classdefnotfound........
Si principale appartient à la classe que nous essayons de courir alors pourquoi l'erreur dit exception in thread main
cela peut se produire que lorsqu'un principal fil fonctionne
La méthode principale de Java appartient à une classe mais pas à un objet. Les objets sont créés au moment de l'exécution. Ainsi, puisque le principal main()
en Java est le point de départ de votre application, il n'y a aucun moyen de démarrer votre application à partir d'une méthode spécifique à l'instance. C'est pourquoi le mot-clé static
prend tout son sens avec la méthode principale. En fait, toutes les parties de la principale déclaration de méthode sens parfait quand vous pensez comme le « jvm » et de l'image que la principale méthode ne (lance l'application):
public
, parce que cette méthode doit être accessible par le jvm (pas écrit par vous). Cela implique que cette méthode peut être accédée sans avoir d'objet (parce que sa représentation ne change jamais), mais ici la logique est facile à comprendre si vous pensez à nouveau comme jvm; "Je n'ai aucun objet pour créer (instancier) des objets, j'ai donc besoin d'une méthode statique pour démarrer l'application car il n'y a tout simplement aucun moyen logique d'obtenir une méthode spécifique à l'instance, car je n'ai rien encore créer des objets ".void
Cette méthode ne peut pas renvoyer quoi que ce soit car il n'y a encore rien à quoi renvoyer quoi que ce soit. C'est le point de départ de l'application. Je suis la méthode principale car sans moi vous n'aurez pas d'application. Envoyez-moi des données que vous pouvez vous sentir utiles pour mon démarrage.
- 1. Comment pouvons-nous vérifier à quelle classe appartient un objet?
- 2. Héritage de la méthode principale
- 3. Comment déduire la classe à laquelle appartient @staticmethod?
- 4. Sql Trigger - à quelle table appartient-il?
- 5. Dans Gobject, comment remplacer la méthode de la classe parente appartient à une interface?
- 6. Qu'est-ce que "ClassName objectName;" fait avant la méthode principale?
- 7. Java Méthode principale, bon style de codage
- 8. Appel d'une fonction d'une classe "enfant" référant la classe principale
- 9. Pourquoi vous pouvez créer une auto-évaluation de classe dans la méthode principale de la classe
- 10. quelle méthode d'activité principale s'exécute lorsque l'application se ferme?
- 11. Vérifiez que l'utilisateur appartient à db rôle
- 12. Java: quelle est la classe de la méthode isBinary?
- 13. Nouveau sur Java, aide à transformer cette méthode en classe. Plus de confiance à la méthode principale
- 14. champ appartient à une classe, mais comment utiliser le polymorphisme
- 15. mettre le code dans la méthode principale
- 16. VB.net Méthode principale non exécutable
- 17. Classe principale - sous-classes
- 18. Python: Découvrez quelle méthode sur la classe dérivée appelée méthode de classe de base
- 19. Construction d'un projet avec MSBuild qui n'a que des fichiers de classe sans méthode principale
- 20. Quelle classe a appelé ma méthode statique?
- 21. Qui a passé les "args" à la méthode principale?
- 22. Est-il possible d'appeler la méthode principale en passant args [] à partir d'une autre méthode?
- 23. Que signifie "WINAPI" dans la fonction principale?
- 24. Découvrez quelle classe a appelé une méthode
- 25. lancer mon application à l'aide de la méthode principale
- 26. Comment puis-je savoir à quelle catégorie appartient un produit?
- 27. Java - Impossible de trouver la classe principale?
- 28. quelle classe de service utiliser pour incapsuler la méthode
- 29. Trouver à quelle table appartient un index spécifique
- 30. À quelle génération de langages SQL appartient-il?
maintenant incompris – billu
+1, Bonne prise - on dirait que le problème était la compréhension de 'classe' et 'objet'! –