Sobes.tech
Junior — Middle

Quelle est la différence entre les champs d'une classe et les variables locales à l'intérieur des méthodes en Java?

sobes.tech IA

Réponse de l'IA

Les champs de classe (variables d'instance ou champs statiques) et les variables locales à l'intérieur des méthodes en Java diffèrent par leur portée, leur durée de vie et leur lieu de stockage :

  • Champs de classe :

    • Déclarés à l'intérieur de la classe, mais en dehors des méthodes.
    • Stockés dans l'objet (si non statiques) ou dans la zone de la classe (si statiques).
    • Conservent leur valeur entre les appels de méthodes.
    • Sont accessibles depuis différentes méthodes de la classe (selon le niveau d'accès).
  • Variables locales :

    • Déclarées à l'intérieur d'une méthode.
    • Existent uniquement pendant l'exécution de la méthode.
    • Sont stockées dans la pile d'appels.
    • Ne sont pas accessibles en dehors de la méthode dans laquelle elles sont déclarées.

Exemple :

public class Example {
    int field = 10; // champ de classe

    public void method() {
        int localVar = 5; // variable locale
        System.out.println(field + localVar);
    }
}

Ici, field conserve l'état de l'objet, tandis que localVar n'existe que pendant l'exécution de la méthode method.