Je suis un débutant à Java et je suis confus à propos de quelque chose:
Dans le programme simple Hello World en Java, aucun objet n'est créé alors comment la classe travaille-t-elle dans l'exemple suivant? P> < Pré> xxx pré> p>
6 Réponses :
Cela ne crée pas d'instance de Voir le Page de tutoriel Java sur les membres statiques / instance < / a> Pour plus de détails, avec Cette question de dépassement de pile (entre autres). P> helloworld code> car principal code> est une méthode statique em>. Des méthodes statiques (et des champs statiques) sont liées au type type em> plutôt qu'à un instance em> du type. P>
Comment pouvez-vous poster une réponse en quelques secondes?
Je viens de le voir, c'est tout.
Y a-t-il une question que vous ne pouvez pas répondre?
La question est probablement plus ... "faites-vous cela comme un travail à temps plein?" :) Mais continuez de cette façon, votre information est vraiment précieuse
@Juri "fais-tu cela comme un travail à temps plein?" - En tant qu'actionneur de Google, j'espère que non :-)
Des méthodes statiques telles que Main () peuvent être utilisées sans objet. P>
Votre système de construction liera le point d'entrée du programme à la routine "principale" de la classe. Une seule classe peut avoir une routine "principale". P>
"Main" est statique. Cela signifie que c'est une "méthode de classe". Cela fonctionne sans une instance. P>
Je soupçonne que tu penses que c #. En Java, aucun nombre de classes peut avoir des méthodes «principales». Mind You, c'est vrai en C # - il vous suffit de dire au compilateur dont la classe doit être traitée comme point d'entrée.
Plus tard, si vous souhaitez utiliser des méthodes helloworld non statiques, vous devez créer une instance de helloworld dans la méthode principale (Main ne sera plus exécutée car ce n'est pas constructeur). P>
Une version plus OO ressemblerait à: que je suppose ressemble davantage à ce que vous attendiez. Il instancime une nouvelle instance de classe Helloword, puis la demande de faire quelque chose. Pour apprendre OO, je trouve cela plus intuitif et (pour des raisons pour lesquelles je ne vais pas entrer ici), j'ai tendance à craindre des méthodes statiques lors de la rédaction de mes propres cours (brièvement - problèmes de filetage / État commun, etc.) P> < / p>
Non ... une version plus oo ressemblerait à Servicelocator.GetService (greeterfactory.class) .GetGreeter () .Greet (World) .on (SYS TEM.out); Code>. ;)
Toute variable ou méthode déclarée Expériment strong> P> Essayez de compiler cette classe: p> Ceci réussit car la variable Ceci réussit car la variable Essayez de compiler cette classe: p> int_value code> est déclarée statique (comme la méthode principale code>). p> Essayez de compiler cette classe avec la classe précédente: p> int_value indicateur> est à la fois public class HelloWorld {
public int int_value = 42;
public HelloWorld() { }
public static void main( String args[] ) {
HelloWorld hw = new HelloWorld();
System.out.println( "Hello, " + hw.int_value );
}
}
Le "monde Hello" est un objet au moins :)