Champ de classe et champ d'instance en Java

Shikha Chaudhary 12 octobre 2023
  1. la variable locale en Java
  2. le paramètre d’entrée en Java
  3. le champ de classe en Java
  4. les propriétés du champ de classe en Java
  5. le champ d’instance en Java
  6. Les propriétés des champs d’instance en Java
Champ de classe et champ d'instance en Java

Cet article apprendra les termes de base du langage de programmation Java tels que les variables locales, les paramètres d’entrée, les champs de classe et les champs d’instance en Java.

la variable locale en Java

Une variable dont la portée est liée au bloc, à la méthode ou au constructeur est appelée une variable locale. Dites, nous avons une méthode, testing.

Nous déclarons une variable val et attribuons 10 à cette méthode. Écrivez l’instruction print dans le bloc main.

public class Experiment {
  public static void testing() {
    int val = 10;
  }

  public static void main(String[] args) {
    // try printing the local variable of the function demo
    System.out.printf("%d", val);
  }
}

Production:

error: cannot find symbol
      System.out.printf("%d", val);
                              ^
  symbol:   variable val
  location: class Experiment
1 error

Bien que la variable val soit présente dans ce code, nous obtenons une erreur. Ici, la variable val est une variable locale à la méthode testing().

Etant donné qu’il est défini à l’intérieur de la méthode testing, son champ d’application est limité. Nous obtenons une erreur lorsque l’instruction print tente d’accéder à cette variable en dehors de cette portée.

Maintenant, déclarez l’instruction print dans la méthode testing et appelez la méthode à partir du bloc main.

public class Experiment {
  public static void testing() {
    int val = 10;
    System.out.printf("%d", val);
  }

  public static void main(String[] args) {
    // call the method
    testing();
  }
}

Production:

10

Cette fois, l’instruction print accède à la variable à partir de sa portée.

Essayez maintenant de comprendre la variable locale dans ce code.

public class Treat {
  public static void main(String[] args) {
    for (int i = 0, i < 1; i++) {
      System.out.println("You will get a Cake if you answer correctly!");
    }
  }
}

La variable i est une variable locale. Sa portée est limitée à la boucle for.

Notez les points suivants concernant les variables locales :

  • Nous ne pouvons pas utiliser de modificateurs d’accès comme public, protected et private pour déclarer des variables locales.
  • Ces variables sont implémentées en interne au niveau de la pile.

le paramètre d’entrée en Java

Certaines informations doivent être exécutées, d’autres non. Regardez cette méthode welcome.

public class Greet {
  // a function that does not need any parameter or information
  public static void welcome() {
    System.out.println("Hello, we are happy you visited.");
  }
  public static void main(String[] args) {
    // call the function
    welcome();
  }
}

Production:

Hello, we are happy you visited.

Nous appelons la méthode sans lui transmettre de valeurs. Nous ne donnons aucune information à cette méthode, et elle s’exécute correctement.

public class Test {
  // a function that needs some information/parameter
  public static void hello(int x) {
    int a;
    System.out.println("Hello, we are happy you visited.");
    if (x < 18) {
      a = 18 - x;
      System.out.printf("Please come back after %d years.", a);
    }
  }
  public static void main(String[] args) {
    int age = 2;

    // call the function
    hello(age);
  }
}

Production:

Hello, we are happy you visited.
Please come back after 16 years.

La méthode hello ne s’exécutera pas correctement si nous ne passons pas de valeur pour age.

La méthode reçoit cette valeur à travers la variable x définie à l’intérieur de la parenthèse. La variable x n’est rien d’autre qu’un paramètre d’entrée ou tout simplement un paramètre.

Un paramètre d’entrée ou un paramètre en Java est une variable utilisée pour définir une méthode pour aider la méthode à s’exécuter.

Ne mélangez pas les paramètres avec les arguments. Ils ont la même valeur, mais ce n’est pas la même chose.

public class Test {
  // function to add ages
  public static int totalAge(int age1, int age2) {
    return age1 + age2;
  }
  public static void main(String[] args) {
    int a1 = 10;
    int a2 = 12;

    int total = totalAge(a1, a2);
    System.out.println("Sum of ages: " + total);
  }
}

Production:

Sum of ages: 22

Ici, age1 et age2 sont les paramètres d’entrée.

le champ de classe en Java

Toute variable à l’intérieur d’une classe peut être appelée champ en Java. Toutes les variables comme price, quantity et name sont des champs.

Cependant, notez que la variable quantity commence par le mot-clé static. De tels champs avec le mot-clé static dans leur définition sont appelés champs de classe en Java.

Les champs de classe sont également appelés variables de class ou champs statiques en Java.

class Cake {
  int price;
  static int quantity;
  string name;
}

les propriétés du champ de classe en Java

Les points suivants sont un champ de classe :

  • Un champ de classe doit être déclaré avec le mot clé static.
public static NameOfClass {
  static datatype name_of_variable;
}
  • De nombreuses instances d’une classe partagent le champ de classe, et donc les champs de classe sont économes en mémoire. En termes très simples, la valeur d’un champ d’instance est la même pour toutes les instances d’une classe en Java.
  • Nous pouvons accéder à un champ de classe en Java en utilisant une instance de la classe et le nom de la classe lui-même. Notez qu’une instance n’est pas nécessairement nécessaire pour accéder à un champ statique.
class Cake {
  int price;
  static int quantity = 10;
  String name;

  public static void main(String[] args) {
    // create the object of Cake class
    Cake c1 = new Cake();

    // Access the class field using the object
    System.out.println(c1.quantity);

    // Access the class field using the class
    System.out.println(Cake.quantity);
  }
}

Production:

10
10

Dans l’exemple ci-dessus, nous accédons au champ de classe à l’aide d’un objet utilisant l’opérateur point comme celui-ci - c1.quantity. De même, pour accéder à la variable par classe, utilisez le nom de classe Cake.quantity.

le champ d’instance en Java

public class Cake {
  int cost;
  String flavor;

  public Cake(int cost, String flavor) {
    this.cost = cost;
    this.flavor = flavor;
  }

  public int expense() {
    return cost;
  }

  public static void main(String[] args) {
    Cake cake1 = new Cake(1000, "Choco lava");
    Cake cake2 = new Cake(2000, "Pineapple");

    System.out.println(cake1.expense());
    System.out.println(cake2.expense());
  }
}

Production:

1000
2000

À l’intérieur de la classe Cake, nous avons deux variables - cost et flavor. Nous créons cake1 et cake2.

Ces variables qui peuvent prendre des valeurs différentes pour différents objets sont appelées variables d'instance ou champs d'instance.

Les propriétés des champs d’instance en Java

Les champs d’instance en Java sont également appelés variables non statiques. Voici quelques points sur les champs d’instance.

  • Les champs d’instance ne sont pas déclarés avec le mot-clé static de Java.
public class ClassName {
  datatype variable_name;
}
  • Ils ne sont pas partagés avec toutes les instances. Chaque instance peut avoir sa valeur unique pour un champ d’instance en Java.
  • Vous avez vu comment nous pouvions accéder à un champ de classe à l’aide de la classe elle-même. Eh bien, ce n’est pas vrai pour un champ d’instance en Java. Nous avons besoin d’une instance/objet pour accéder à un champ d’instance en Java.
  • Nous pouvons utiliser n’importe quel spécificateur d’accès avec un champ d’instance en Java. Reportez-vous à cette documentation pour en savoir plus sur les champs en Java.