web-dev-qa-db-fra.com

Que signifie "vide statique public" en Java?

Que signifie public static void en Java?

Je suis en train d'apprendre. Dans tous les exemples du livre sur lequel je travaille public static void précède toute méthode utilisée ou créée. Qu'est-ce que ça veut dire?

139
David

Ce sont trois choses complètement différentes:

public signifie que la méthode est visible et peut être appelée à partir d'autres objets d'autres types. Les autres alternatives sont private, protected, package et package-private. Voir ici pour plus de détails.

static signifie que la méthode est associée à la classe et non à une instance (objet) spécifique de cette classe. Cela signifie que vous pouvez appeler une méthode statique sans créer d'objet de la classe.

void signifie que la méthode n'a pas de valeur de retour. Si la méthode renvoyait un int, vous écririez int au lieu de void.

La combinaison de ces trois éléments est généralement observée dans la méthode main que la plupart des tutoriels incluront.

214
Mark Byers

Les trois mots ont une signification orthogonale.

public signifie que la méthode sera visible à partir des classes d'autres packages.

static signifie que la méthode n'est pas attachée à une instance spécifique et qu'elle n'a pas "this". C'est plus ou moins une fonction.

void est le type de retour. Cela signifie "cette méthode ne retourne rien".

43
Thomas Pornin

Le mot clé public est un spécificateur d'accès, qui permet au programmeur de contrôler la visibilité des membres de la classe. Lorsqu'un membre de la classe est précédé de public, il est possible d'accéder à ce membre à l'aide d'un code situé en dehors de la classe dans laquelle il est déclaré. (L'opposé de public est privé, ce qui empêche un membre d'être utilisé par un code défini en dehors de sa classe.)

Dans ce cas, main( ) doit être déclaré public car il doit être appelé par un code situé en dehors de sa classe lors du démarrage du programme.

Le mot clé statique permet à main( ) d'être appelé sans avoir à instancier une instance particulière de la classe. Ceci est nécessaire car main( ) est appelé par l'interpréteur Java avant la création d'objets.

Le mot clé void indique simplement au compilateur que main( ) ne renvoie pas de valeur. Comme vous le verrez, les méthodes peuvent aussi renvoyer des valeurs.

22
utsav

Cela signifie que:

  • public - il peut être appelé de n'importe où
  • static - il n'a pas d'état d'objet, vous pouvez donc l'appeler sans instancier un objet
  • void - il ne retourne rien

On pourrait penser que l'absence de retour signifie que cela ne fait pas grand chose, mais cela pourrait consister à sauvegarder des éléments dans la base de données, par exemple.

16
Paul Tomblin

Cela signifie trois choses.

Tout d'abord public signifie que tout autre objet peut y accéder.

static signifie que la classe dans laquelle elle réside n'a pas besoin d'être instanciée avant que la fonction puisse être appelée.

void signifie que la fonction ne renvoie pas de valeur.

Puisque vous venez tout juste d’apprendre, ne vous préoccupez pas trop des deux premiers tant que vous n’êtes pas renseigné sur les cours, et le troisième n’aura plus d’importance tant que vous ne commencerez pas à écrire des fonctions (autres que les fonctions principales).

Le meilleur conseil que j'ai reçu lors de l'apprentissage de la programmation et que je vous transmets, est de ne pas vous soucier des petits détails que vous ne comprenez pas tout de suite. Obtenez un aperçu général des principes fondamentaux, puis revenez en arrière et préoccupez-vous des détails. La raison en est que vous devez utiliser certaines choses (comme public static void) dans vos premiers programmes qui ne peuvent pas vraiment être expliquées sans vous apprendre d'abord un tas d'autres choses. Donc, pour le moment, acceptez que c'est comme ça, et avancez. Vous les comprendrez bientôt.

4
Aaron

Considérant la classe de haut niveau typique. Seuls les modificateurs d'accès public et sans modificateur peuvent être utilisés au niveau supérieur. Vous verrez alors public ou vous ne verrez aucun modificateur d'accès.

`static`` est utilisé parce que vous n'avez peut-être pas besoin de créer un objet réel au niveau supérieur (mais vous voudrez parfois que vous ne voyiez pas/n'utilisiez pas toujours static. Il y a d'autres raisons pour lesquelles vous n'incluez pas static aussi mais c’est le cas typique au plus haut niveau.)

void est utilisé car vous n'allez généralement pas renvoyer de valeur du niveau supérieur (classe). (Parfois, vous voudrez renvoyer une valeur autre que NULL afin que void ne soit pas toujours utilisé, en particulier dans le cas où vous avez déclaré, initialisé un objet au niveau supérieur auquel vous affectez une valeur).

Disclaimer: Je suis un débutant moi-même, donc si cette réponse est fausse de quelque façon que ce soit, veuillez ne pas me pendre. De jour je suis un recruteur de technologie pas un développeur; le codage est mon passe-temps. De plus, je suis toujours ouvert aux critiques constructives et adore apprendre, alors n'hésitez pas à signaler les erreurs éventuelles.

3

Public - signifie que la classe (programme) est disponible pour être utilisée par une autre classe.

Static - crée une classe. Peut également être appliqué aux variables et aux méthodes, ce qui en fait des méthodes/variables de classe au lieu d'être simplement locales à une instance particulière de la classe.

Void - cela signifie qu'aucun produit n'est renvoyé à la fin du traitement de la classe. Comparez cela avec les classes auxiliaires qui fournissent une valeur de retour à la classe principale, celles-ci fonctionnent comme des fonctions; ceux-ci n'ont pas de nullité dans la déclaration.

2
user647200
  • public signifie que vous pouvez accéder à la classe à partir de n’importe où dans la classe/l’objet ou en dehors du package ou de la classe
  • static signifie une constante dans laquelle le bloc d'instruction n'a été utilisé qu'une fois
  • void signifie pas de type de retour
2
Saleem Bhayo

static signifie que la méthode est associée à la classe et non à une instance (objet) spécifique de cette classe. Cela signifie que vous pouvez appeler une méthode statique sans créer d'objet de la classe. En raison de l'utilisation d'un static mot-clé main() est votre première méthode à être invoquée. static n'a besoin d'aucun objet pour instance ... donc, main( ) est appelé par l’interprète Java avant la création d’objets.

0
mahi