la principale méthode que final en java
J'ai vu ce code dans l'un des examens de certification:
public class SimpleClass
{
int num;
final static void main(final String args[])
{
String s1="new";
String s2="String";
String s3="Creation";
System.out.println(s1+s2+s3);
}
}
Je sais qu'au final les méthodes sont celles qui ne sont pas possible de déroger. Je sais aussi que, si l'habitude de la signature de la main
méthode est modifiée, elle sera traitée comme toute autre méthode ordinaire par la JVM, et non pas comme main()
.
Cependant, les options qui me sont:
1> Code won't compile
2> Code will throw an exception
3> will print newStringCreation.
Il n'est pas possible d'exécuter ce programme sur l'IDE eclipse. Quelqu'un peut-il expliquer ce que devrait être la réponse, et pourquoi?
Ok permettez-moi de mettre ma question comme celle - ci, Lorsque j'exécute mon programme, ce qui va arriver? Laquelle des 3 options ci-dessus devrais-je choisir?
Méchant question.
Oui, le code de la compilation, il juste ne fonctionnera pas.
Ainsi, définir "exécuter"; si cela signifie que vous lancez avec
Déclarant méthode statique n'EST PAS redondant. Vous pouvez masquer des méthodes statiques dans les sous-classes, si vous n'avez pas besoin de les déclarer comme définitif dans la super-classe.
Avez-vous essayez de compiler et d'exécuter vous-même? Que voulez-vous dire par "Il n'est pas possible d'exécuter ce programme sur l'IDE eclipse."? Ce qui se passe lorsque vous essayez? Avez-vous essayer de l'exécuter sur la ligne de commande?
final
ne devrait pas d'importance. Mais main
est pas public, ce qui permettrait de m'inquiéter.Oui, le code de la compilation, il juste ne fonctionnera pas.
Ainsi, définir "exécuter"; si cela signifie que vous lancez avec
java SimpleClass
puis il va lever une exception, puisque comme vous l'avez mentionné vous-même, il est, en fait, pas de main()
à exécuter. Aussi, vous ne pouvez pas remplacer static
méthodes en aucune manière, la forme ou la forme, de sorte que les déclarant final
est redondante.Déclarant méthode statique n'EST PAS redondant. Vous pouvez masquer des méthodes statiques dans les sous-classes, si vous n'avez pas besoin de les déclarer comme définitif dans la super-classe.
Avez-vous essayez de compiler et d'exécuter vous-même? Que voulez-vous dire par "Il n'est pas possible d'exécuter ce programme sur l'IDE eclipse."? Ce qui se passe lorsque vous essayez? Avez-vous essayer de l'exécuter sur la ligne de commande?
OriginalL'auteur Gpar | 2014-11-03
Vous devez vous connecter pour publier un commentaire.
Le Code compile sans problème mais il va lever une exception d'exécution en disant: "la principale méthode n'est pas public". La méthode main doit être public, car il doit être appelé par la JVM qui est en dehors du champ d'application de l'emballage et donc aurait besoin de l'accès spécificateur-public. Si vous ne parvenez pas à exécuter dans eclipse, essayez la méthode archaïque de l'enregistrement du fichier dans un bloc-notes avec filename.java. Aller à cmd et atteindre l'emplacement du fichier..Si sur le bureau, utilisez le cd-rom de bureau! Utilisez les commandes suivantes pour exécuter le fichier-
Vous verrez l'exécution nécessaires sauf que je l'ai mentionné ci-dessus.
Merci @hchawla, je l'ai fait essayer votre suggestion, mais dans cmd eu l'erreur que l'on appelle "javac n'est pas reconnu comme une commande interne ou externe". Merci de me dire ce que dois-je faire ensuite?
Avez-vous été dans le même répertoire dans cmd où le fichier a été, lorsque vous avez exécuté l'javac commentaire?
ce lien doit être utile pour corriger ces erreurs, si il y a de tout 🙂docs.oracle.com/javase/tutorial/getStarted/problems/index.html
OriginalL'auteur hchawla
final static void main
ne fonctionnera pas, puisque la principale n'est pas public.public final static void main
fonctionne.Au moins, c'est le comportement sur mon IDE Eclipse.
OriginalL'auteur Eran
La
main
méthode doit être accessible de l'extérieur. Donc, dans votre cas, l'application de la compilation, mais jeter une exécution lors de l'exécution.OriginalL'auteur Stefan Freitag
Vous avez la méthode main, mais depuis le modificateur final de la JVM ne sera pas en mesure d'exécuter la méthode main du programme.Vous ne voyez aucune erreur de compilation.
Vous pouvez exécuter le programme dans eclipse lorsque vous faites la touche de changement de final à public
OriginalL'auteur Amz