Une variable d'instance est un élément de données dans la programmation orientée objet qui a sa propre valeur unique pour chaque objet dans lequel il réside. Les variables d'instance peuvent également être appelés membres d'instance, non statiques, les champs et les membres de données. Ils sont une partie importante de la plupart des objets, des pièces de maintien de données spécifiques que l'objet utilise pour le calcul.
Par exemple, s'il existe deux objets, A et B, où l'objet A a une variable d'instance appelée "blah", et l'objet B a également une variable d'instance appelée "blah," les deux "blah" variables sont des entités distinctes. Chaque variable est associée à l'objet qu'il encapsule. Le nom complet de la variable "blah" associé à l'objet A ". B.blah" est "A.blah", tandis que le nom complet de la variable "blah" associé à l'objet B est Chaque si ces variables peut avoir sa propre valeur. Si les objets A et B sont du même type, et un autre objet de ce type, C, est créé et l'objet C aura également une variable d'instance "blah", ce qui peut avoir sa propre valeur unique.
Les variables d'instance sont souvent confondus avec les variables statiques, mais les deux sont très différents. Contrairement aux variables d'instance, dont tous les objets d'un type particulier, possède ses propres variables statiques avoir qu'une seule valeur, et cette valeur est la même pour tous les objets du type approprié. Les variables statiques sont souvent appelées variables de classe, qui ne sont pas les mêmes que les variables d'instance.
Selon les propriétés de visibilité qui leur sont confiées, les variables d'instance peuvent être visibles seulement à l'intérieur d'un objet particulier, à un objet et ses sous-classes, ou à l'objet dans lequel il réside ainsi que tous les autres objets. Ce type final de la visibilité, appelé visibilité publique, est souvent considéré comme une mauvaise pratique pour les variables d'instance, car il est facile de violer les principes d'encapsulation dans la programmation orientée objet. En dépit de ce tabou, il y a des moments où les variables d'instance publiques sont utiles. Par exemple, de nombreuse classe standard de Java, les variables d'instance publiques, qui parfois permet de modifier facilement les propriétés.
La visibilité d'une variable d'instance entre également en jeu avec l'héritage. Si une classe hérite d'une autre, cela ne donne pas immédiatement les deux classes d'accès aux variables d'instance uns et des autres. Variables d'instance privées dans la superclasse et sous-classe reste limité aux seules ces classes, donc une variable privée dans la sous-classe ne peuvent pas être vus par la superclasse, et vice versa. Les variables d'instance seulement que les deux la superclasse et sous-classe peut voir est protégé variables dans la superclasse.