0Pricing
Java Academy · Leçon

Portée et durée de vie

Comprenez où les variables sont visibles (portée) et combien de temps elles existent (durée de vie) : blocs, boucles, méthodes, champs, masquage et paramètres final.

Portée et durée de vie est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 3 leçons au total.

Portée et durée de vie

Portée = endroit où un nom (variable) est visible. Durée de vie = durée pendant laquelle la variable existe. Vous découvrirez la portée des blocs et des boucles, les variables locales des méthodes, les champs de classe et les règles de masquage.

Portée des blocs

Portée d’un bloc : une variable déclarée entre des accolades n’est visible qu’à l’intérieur de ces accolades.

public class Main {
  public static void main(String[] args) {
    int a = 10; // visible in main
    {
      int b = 20; // visible only inside this block
      System.out.println("inside block: a=" + a + ", b=" + b);
    }
    System.out.println("outside block: a=" + a);
    // System.out.println(b); // would NOT compile: b is out of scope
  }
}

Portée des boucles

Portée d’une boucle : un indice de boucle déclaré dans l’en-tête for n’est visible qu’à l’intérieur du corps de la boucle.

public class Main {
  public static void main(String[] args) {
    for (int i = 0; i < 3; i = i + 1) {
      System.out.println("i in loop = " + i);
    }
    // System.out.println(i); // would NOT compile: i is scoped to the loop

    int j;
    for (j = 0; j < 2; j = j + 1) {
      System.out.println("j in loop = " + j);
    }
    System.out.println("j after loop = " + j); // OK: j declared outside
  }
}

Champs et variables locales

Durée de vie : les champs de classe et les champs statiques persistent d’un appel à l’autre ; les variables locales sont recréées à chaque appel, puis supprimées à la fin de la méthode.

public class Main {
  // static field (class-level): lives for the program lifetime
  static int counter = 0;

  static void tick() {
    int local = 100; // local: created each call, dies when method returns
    counter = counter + 1;
    System.out.println("tick: counter=" + counter + ", local=" + local);
  }

  public static void main(String[] args) {
    tick();
    tick();
    tick();
    System.out.println("final counter=" + counter);
  }
}

Masquage

Masquage : une déclaration interne (par exemple, un paramètre ou une variable locale) peut masquer un nom externe portant le même identifiant. Utilisez ClassName.field (ou this.field dans les méthodes d’instance) pour accéder au champ masqué.

public class Main {
  static String label = "FIELD"; // class field

  static void demo(String label) { // parameter shadows field name
    System.out.println("param label = " + label); // uses parameter
    {
      String labelInner = "INNER"; // new name in inner block
      System.out.println("inner block labelInner = " + labelInner);
      System.out.println("still param label = " + label);
    }
    System.out.println("field via class name = " + Main.label); // refer to field explicitly
  }

  public static void main(String[] args) {
    demo("PARAM");
  }
}

Paramètres finaux et passage par valeur

Les paramètres finaux ne peuvent pas être réaffectés. Java transmet les paramètres par valeur : réaffecter le paramètre ne modifie pas la variable de l’appelant.

public class Main {
  // final parameter cannot be reassigned inside the method
  static int inc(final int n) {
    // n = n + 1; // would NOT compile if uncommented
    return n + 1; // safe: return a new value
  }

  static void reassign(int x) {
    x = 999; // reassignes the local copy; caller variable is unchanged
  }

  public static void main(String[] args) {
    int a = 5;
    int b = inc(a);
    System.out.println("a=" + a + ", b=inc(a)=" + b);

    reassign(a);
    System.out.println("after reassign(a): a is still " + a);
  }
}

Vérification de la portée et de la durée de vie

Vérification rapide : Quelle affirmation sur la portée et la durée de vie est TRUE ?

Récapitulatif et suite

Récapitulatif : Vous avez pratiqué la portée des blocs et des boucles, les champs par rapport aux variables locales, le masquage et les paramètres finaux. Ensuite : découvrez les modèles de conception et de réutilisation dans A2.2.

Questions Fréquemment Posées

La leçon « Portée et durée de vie » est-elle gratuite ?

Oui — le texte complet de « Portée et durée de vie » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 3 leçons au total.

Qu'est-ce que j'apprendrai dans « Portée et durée de vie » ?

Comprenez où les variables sont visibles (portée) et combien de temps elles existent (durée de vie) : blocs, boucles, méthodes, champs, masquage et paramètres final. Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Java Academy ?

Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 3.

Combien de temps prend la leçon « Portée et durée de vie » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?

Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Définition des méthodes et paramètres
  2. Valeurs de retour et surcharge
  3. Portée et durée de vie
← Retour à Java Academy