Différence entre la variable d'instance et la variable locale

Anonim

Variable d'instance par rapport à la variable locale

Une variable d'instance est un type de variable présent dans la programmation orientée objet. Il s'agit d'une variable définie dans une classe et chaque objet de cette classe contient une copie distincte de cette variable. D'autre part, l'utilisation de variables locales ne se limite pas aux langages de programmation orientés objet. Il s'agit d'une variable qui ne peut être évaluée qu'à l'intérieur d'un bloc de code particulier (par exemple fonction, bloc de boucle, etc.) dans lequel elle est définie. Pour cette raison, les variables locales ont une portée locale.

Qu'est-ce qu'une variable d'instance?

Les variables d'instance sont utilisées dans la programmation orientée objet pour stocker l'état de chaque objet dans une classe. Ils sont également appelés variables membres ou variables de champ. Les variables d'instance sont déclarées sans utiliser le mot-clé static en Java. Les valeurs stockées dans les variables d'instance sont propres à chaque objet (chaque objet a une copie distincte) et les valeurs stockées dans ces objets représentent l'état de cet objet. L'espace pour une variable d'instance est alloué dans le tas, lorsque cet objet est alloué dans le tas. Par conséquent, les variables d'instance sont conservées dans la mémoire tant que l'objet est actif. Par exemple, la couleur d'une voiture est indépendante de la couleur d'une autre voiture. Ainsi, la couleur d'un objet de voiture peut être stockée dans une variable d'instance. En pratique, les variables d'instance sont déclarées à l'intérieur des classes et hors des méthodes. Habituellement, les variables d'instance sont déclarées privées, de sorte qu'elles ne sont accessibles que dans la classe déclarée.

Qu'est-ce qu'une variable locale?

Les variables locales sont des variables ayant une portée locale et sont déclarées dans un bloc de code spécifique. Les variables locales peuvent être considérées comme des variables utilisées par une méthode pour stocker son état temporaire. La portée d'une variable locale est déterminée en utilisant l'emplacement où la variable est déclarée et les mots clés spéciaux ne sont pas utilisés à cette fin. Typiquement, l'accès à une variable locale est limité dans le bloc de code qu'il est déclaré (c'est-à-dire entre les accolades d'ouverture et de fermeture de ce bloc de code). Les variables locales sont généralement stockées dans la pile d'appels. Cela permettrait aux appels de fonction récursive de conserver leurs propres copies des variables locales à stocker dans des espaces d'adresse mémoire séparés. Lorsque la méthode termine son exécution, des informations sur cette méthode sont extraites de la pile d'appels, détruisant également les variables locales qui ont été stockées.

Quelle est la différence entre la variable d'instance et la variable locale?

Les variables d'instance sont déclarées dans des classes en dehors des méthodes et stockent l'état d'un objet, tandis que les variables locales sont déclarées dans des blocs de code et sont utilisées pour stocker l'état d'une méthode.Une variable d'instance est active tant que l'objet qui contient cette variable est actif, tandis qu'une variable locale est active pendant l'exécution de ce bloc de méthode / code. Une variable d'instance (déclarée publique) est accessible dans la classe, alors qu'une variable locale n'est accessible que dans le bloc de code qu'elle déclare. L'utilisation des variables d'instance est seulement limitée à la programmation orientée objet, alors que les variables locales n'ont pas une telle limitation.