Variable d'instance vs variable locale
Une variable d'instance est un type de variable qui est 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 détient une copie distincte de cette variable. D'un autre côté, 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 que dans un bloc particulier de code (e.g. fonction, bloc de boucle, etc.) dans lequel il est défini. Pour cette raison, les variables locales auraient 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 connus sous le nom de variables membres ou de variables de champ. Les variables d'instance sont déclarées sans utiliser le mot-clé statique en Java. Les valeurs stockées dans les variables d'instance sont uniques à chaque objet (chaque objet a une copie distincte), et les valeurs les stockées 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 en direct. 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 dans les classes et les méthodes extérieures. Habituellement, les variables d'instance sont déclarées comme privé.
Qu'est-ce qu'une variable locale?
Les variables locales sont des variables ayant une portée locale, et elles 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 à l'aide de l'emplacement que la variable est déclarée, et les mots clés spéciaux ne sont pas utilisés à cet effet. En règle générale, l'accès à une variable locale est limité dans le bloc de code qu'il est déclaré (i.e. entre les accolades d'ouverture et de clôture 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écursifs de maintenir leurs propres copies des variables locales à stocker dans des espaces d'adresse mémoire distincts. Lorsque la méthode termine son exécution, les informations sur cette méthode sont sorties 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 les classes en dehors des méthodes, et elles stockent l'état d'un objet, tandis que les variables locales sont déclarées dans les blocs de code, et ils sont utilisés pour stocker l'état d'une méthode. Une variable d'instance est en direct tant que l'objet qui contient cette variable est en direct, tandis qu'une variable locale est en direct lors de l'exécution de ce bloc de méthode / code. Une variable d'instance (qui est déclarée publique) est accessible dans la classe, tandis qu'une variable locale ne peut être accessible que dans le bloc de code qu'elle est déclarée. L'utilisation des variables d'instance ne se limite qu'à la programmation orientée objet, tandis que les variables locales n'ont pas une telle limitation.