Définition des variables d'instance et des variables de classe
Lors de la déclaration des variables membres, celles modifiées avec le mot-clé static sont appelées variables de classe. Les variables de classe sont également appelées variables statiques ou variables statiques, tandis que celles qui ne sont pas modifiées avec le mot-clé static sont appelées variables d'instance.
Par exemple:
classMain{floatx;//variable d'instance staticinty;//variable de classe}
Avis:
Le mot clé static doit être placé avant le type de la variable.
La différence entre les variables d'instance et les variables de classe
1. Les variables d'instance des différents objets sont différentes les unes des autres :
Une classe peut créer plusieurs objets différents à l'aide de l'opérateur new. Ces objets se verront attribuer différentes variables membres. Les variables d'instance affectées à différents objets occupent des espaces de mémoire différents. La modification des variables d'instance d'un objet n'affectera pas les autres variables d'instance. de l'objet.
2. Tous les objets partagent des variables de classe :
S'il y a des variables de classe dans la classe, lors de l'utilisation de l'opérateur new pour créer plusieurs objets différents, les variables de classe affectées à ces objets occupent la même mémoire. La modification de la variable de classe d'un objet affectera la classe des autres objets. c'est-à-dire que les objets partagent des variables de classe.
3. Accédez directement aux variables de classe via les noms de classe :
Lorsqu'un programme Java est exécuté, le fichier de bytecode de la classe est chargé en mémoire. Si la classe ne crée pas d'objet, les variables d'instance de la classe ne se verront pas allouer de mémoire. Cependant, les variables de classe de la classe se voient attribuer l'espace mémoire correspondant lorsque la classe est chargée en mémoire. Si cette classe crée des objets, alors les variables d'instance des différents objets sont différentes les unes des autres, c'est-à-dire que différents espaces mémoire sont alloués et les variables de classe ne réaffectent plus la mémoire. Tous les objets partagent des variables de classe, c'est-à-dire les variables de classe de. tous les objets sont identiques. L'espace mémoire occupé par les variables de classe n'est libéré qu'à la fin du programme.
Par conséquent, une variable de classe est accessible non seulement via un objet mais également directement via le nom de classe, tandis que les variables d'instance d'un objet sont accessibles via l'objet mais sans utiliser le nom de classe.