116 votes

En termes simples, que signifie «statique» en Java?

On m'a dit plusieurs définitions, regardé sur Wikipedia, mais en tant que débutant en Java, je ne sais toujours pas ce que cela signifie. Quelqu'un parle couramment Java et idiot?

291voto

inkedmn Points 12655

statique signifie que la variable ou la méthode marquée comme telle est disponible au niveau de la classe. En d'autres termes, vous n'avez pas besoin de créer une instance de la classe pour y accéder.

 public class Foo {
    public static void doStuff(){
        // does stuff
    }
}
 

Donc, au lieu de créer une instance de Foo et d’appeler ensuite doStuff comme ceci:

 Foo f = new Foo();
f.doStuff();
 

Vous appelez simplement la méthode directement contre la classe, comme suit:

 Foo.doStuff();
 

39voto

Bostone Points 14208

En termes très simples, la classe est un moule et l’objet est la copie réalisée avec ce moule. Les statiques appartiennent au moule et sont accessibles directement sans faire de copies, d’où l’exemple ci-dessus.

7voto

mel3kings Points 1201

Un autre excellent exemple de lorsque les attributs statiques et les opérations sont utilisés lorsque vous souhaitez appliquer le Singleton pattern de conception. En résumé, le modèle de conception Singleton assure que l'un et seulement un objet d'une classe particulière est jamais constructeed au cours de la durée de vie de votre système. pour s'assurer que seulement un objet est jamais construits, typique implemenations du pattern Singleton garder un statique interne de référence pour le seul autorisé instance de l'objet, et l'accès à cette instance est contrôlée à l'aide d'un static fonctionnement

3voto

wulfgar.pro Points 1567

En plus de ce que @inkedmn a souligné, un membre statique est au niveau de la classe. Par conséquent, ledit membre est chargé en mémoire par la machine virtuelle Java une fois pour cette classe (lorsque la classe est chargée). Autrement dit, il n'y a pas n instances d'un membre statique chargé pour n instances de la classe à laquelle il appartient.

-5voto

sushanth Points 1

Les points ci-dessus sont correctes et je tiens à ajouter quelques points plus importants sur mot-clé Static.

En interne, ce qui se produit lorsque vous utilisez le mot-clé static est qu'il va stocker dans la mémoire permanente(qui est en mémoire dans la mémoire),nous savons qu'il existe deux types de mémoire, elles sont pile de la mémoire(mémoire temporaire) et un segment de mémoire(mémoire permanente),donc si vous ne l'utilisez pas statique mot-clé puis allez stocker dans la mémoire temporaire qui est dans la pile mémoire(ou vous pouvez l'appeler comme mémoire volatile).

de sorte que vous aurez un doute que ce qui est l'usage de ce droit???

exemple: static int a=10;(1 programme)

seulement maintenant, je dit que si vous utilisez le mot-clé static pour les variables ou de méthode , il va stocker dans la mémoire permanente de droit.

j'ai donc déclaré la même variable avec le mot-clé static dans un autre programme avec une valeur différente.

exemple: static int a=20;(2)

la variable " a " est stocké dans la mémoire du tas par le programme 1.la même statique de la variable 'a' est trouvé dans le programme 2, à l'époque, on ne crée pas une fois de plus variable 'a' dans la mémoire du tas au lieu de ça, il suffit de remplacer la valeur de un de 10 à 20.

En général, il va créer encore une fois la variable 'a' dans la pile de la mémoire(mémoire temporaire) si vous ne déclarez pas " a " comme variable statique.

globalement, je peux dire que,si nous utilisons le mot-clé static
1.nous pouvons économiser de la mémoire
2.nous pouvons éviter les doublons
3.Pas besoin de créer un objet dans l'ordre pour accéder à une variable statique à l'aide du nom de la classe, vous pouvez y accéder.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X