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
- Définition des méthodes et paramètres
- Valeurs de retour et surcharge
- Portée et durée de vie