Quelle est la différence entre l'instance et les variables statiques avec un exemple approprié (programme)?


Réponse 1:

Tous ont donné un bel exemple et des explications. Je vais continuer avec un:

La variable d'instance est la propriété de chaque objet (instance) d'une classe.

La variable statique est la propriété de la classe elle-même et n'appartient à aucun objet (instance) particulier de cette classe.

Comparant et contrastant:

  1. Les variables statiques sont initialisées au moment du chargement de la classe. Instance via des objets. La variable statique est accessible à l'aide du nom de classe. Par exemple, l'objet variable doit être créé et accessible uniquement via l'objet. exemple

la syntaxe peut différer d'une langue à l'autre

Class_A :: staticVariable // est accessible

ObjClass_A = new Class_A

ObjClass_A.instanceVariable

3. La variable statique peut être initialisée une fois. C'est donc le concept de base dans le modèle singleton.

4. La variable statique ne peut pas faire partie de l'interface pour la classe abstraite, car la mémoire ne leur est pas allouée.



Réponse 2:

La variable d'instance est la propriété de chaque objet (instance) d'une classe.

La variable statique est la propriété de la classe elle-même et n'appartient à aucun objet (instance) particulier de cette classe.

-

Exemple:

employé de classe {
private static int employeeCount = 0;
chaîne privée empName;
privé int empId;

//constructeur
Employé public (String eName, int eId) {
this.empName = eName;
this.empId = eId;
employeeCount ++;
}

public Employee addEmployee (String eName, int eId) {
renvoyer un nouvel employé (eName, eId);
}

public void deleteEmployee (int eId) {
employeeCount--;
}

public int getEmployeeCount () {
return employeeCount;
}
}

Dans cet exemple simple, employeeCount est une variable statique qui donne le nombre actuel d'employés; le nombre d'employés n'est augmenté ou diminué que si nous ajoutons ou supprimons un employé.

L'empName et l'empId sont une variable d'instance car ils sont attachés aux objets employés et seront de préférence différents pour chaque objet.

Ainsi, les variables communes à tous les objets doivent être des variables statiques, sinon en faire une variable d'instance.



Réponse 3:

La variable d'instance est une variable membre définie dans la classe et chaque instance (objet de cette classe) en a une copie distincte. Cela reste en mémoire tant que l'objet existe.

Test de classe
{
String abc;
}

Pour accéder à ce qui précède, vous devez instancier le test de classe

Test t = nouveau Test ();
t.abc = "Bonjour tout le monde".
Test t1 = nouveau Test ();
t1.abc = "Bienvenue"
Test t2 = nouveau Test ();
t2.abc = "Test";

Maintenant, si vous voyez l'exemple ci-dessus, nous avons 3 objets de classe Test, t, t1 et t2 ayant chacun leur propre copie de la variable d'instance abc et stockés à différents emplacements de mémoire.

Les variables statiques sont en revanche associées à une classe, plutôt qu'à un objet. Ils ont un emplacement fixe en mémoire et il est référencé à l'aide du nom de classe.

Test de classe
{
String abc;
nombre entier statique = 0;
}

Maintenant, pour accéder à la variable de comptage, vous n'avez pas besoin d'instancier le test. Vous pouvez y accéder simplement

Test.count = 1;

En général, des variables statiques sont utilisées, si vous voulez



Réponse 4:

Vous pouvez google ce type de question pour plus de détails et un exemple de code

Variable d'instance - Une variable déclarée à l'intérieur de la classe mais à l'extérieur de la méthode est appelée variable d'instance. Il n'est pas déclaré comme statique.

Variable statique - Une variable déclarée comme statique est appelée variable statique. Ce ne peut pas être local, ce n'est pas pour un objet particulaire mais pour toute la classe

Test de classe {
int iv = 10; // variable d'instance
static int sv = 100; // variable statique
méthode void () {
int lv = 50; // variable locale
}}

Pour plus de détails, vérifiez- Types de variables Java