Comprendre les Types de Variables en Java : Guide Complet
Une variable nous fournit un stockage nommé que nos programmes peuvent manipuler. Chaque variable en Java a un type spécifique, qui détermine la taille et la disposition de la mémoire de la variable ; la plage de valeurs qui peuvent être stockées dans cette mémoire ; et l'ensemble des opérations qui peuvent être appliquées à la variable.
Vous devez déclarer toutes les variables avant qu'elles puissent être utilisées. Voici la forme de base d'une déclaration de variable :
data type variable [ = value][, variable [ = value] ...] ;
Ici, data type est l'un des types de données de Java et variable est le nom de la variable. Pour déclarer plus d'une variable du type spécifié, vous pouvez utiliser une liste séparée par des virgules.
Voici des exemples valides de déclaration et d'initialisation de variables en Java :
Exemple
int a, b, c; // Déclare trois int : a, b, et c. int a = 10, b = 10; // Exemple d'initialisation byte B = 22; // initialise une variable byte B. double pi = 3.14159; // déclare et assigne une valeur de PI. char a = 'a'; // la variable char a est initialisée avec la valeur 'a'
Ce chapitre expliquera les différents types de variables disponibles en Java. Il y a trois sortes de variables en Java :
- Variables locales
- Variables d'instance
- Variables de classe/statistiques
Variables locales
Les variables locales sont déclarées dans les méthodes, les constructeurs ou les blocs.
Les variables locales sont créées lorsque la méthode, le constructeur ou le bloc est entré et la variable est détruite une fois qu'on en sort.
Les modificateurs d'accès ne peuvent pas être utilisés pour les variables locales.
Les variables locales ne sont visibles que dans la méthode, le constructeur ou le bloc déclaré.
Les variables locales sont implémentées au niveau de la pile en interne.
Il n'y a pas de valeur par défaut pour les variables locales, elles doivent donc être déclarées et une valeur initiale assignée avant la première utilisation.
Exemple
Ici, age est une variable locale. Elle est définie à l'intérieur de la méthode pupAge() et sa portée est limitée à cette seule méthode.
Live Demopublic class Test {
public void pupAge() {
int age = 0;
age = age + 7;
System.out.println("Puppy age is : " + age);
}
public static void main(String args[]) {
Test test = new Test();
test.pupAge();
}
}
Cela produira le résultat suivant :
Sortie
Puppy age is: 7
Exemple
L'exemple suivant utilise age sans l'initialiser, ce qui donnerait une erreur à la compilation.
Live Demopublic class Test {
public void pupAge() {
int age;
age = age + 7;
System.out.println("Puppy age is : " + age);
}
public static void main(String args[]) {
Test test = new Test();
test.pupAge();
}
}
Cela produira l'erreur suivante lors de la compilation :
Sortie
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
Variables d'instance
Les variables d'instance sont déclarées dans une classe, mais en dehors d'une méthode, d'un constructeur ou de tout bloc.
Lorsqu'un espace est alloué pour un objet dans la pile, un emplacement pour chaque valeur de variable d'instance est créé.
Les variables d'instance sont créées lorsqu'un objet est créé avec l'utilisation du mot-clé « new » et détruites lorsque l'objet est détruit.
Les variables d'instance contiennent des valeurs qui doivent être référencées par plus d'une méthode, constructeur ou bloc, ou des parties essentielles de l'état d'un objet qui doivent être présentes tout au long de la classe.
Les variables d'instance peuvent être déclarées au niveau de la classe avant ou après utilisation.
Les modificateurs d'accès peuvent être donnés pour les variables d'instance.
Les variables d'instance sont visibles pour toutes les méthodes, constructeurs et blocs de la classe. Normalement, il est recommandé de rendre ces variables privées (niveau d'accès). Cependant, la visibilité pour les sous-classes peut être donnée pour ces variables avec l'utilisation de modificateurs d'accès.
Les variables d'instance ont des valeurs par défaut. Pour les nombres, la valeur par défaut est 0, pour les booléens c'est false, et pour les références d'objets c'est null. Les valeurs peuvent être assignées lors de la déclaration ou dans le constructeur.
Les variables d'instance peuvent être accédées directement en appelant le nom de la variable à l'intérieur de la classe. Cependant, dans les méthodes statiques (lorsque les variables d'instance sont accessibles), elles doivent être appelées en utilisant le nom pleinement qualifié. ObjectReference.VariableName.
Exemple
Live Demoimport java.io.*;
public class Employee {
// cette variable d'instance est visible pour toute classe enfant.
public String name;
// la variable salary est visible dans la classe Employee seulement.
private double salary;
// La variable name est assignée dans le constructeur.
public Employee (String empName) {
name = empName;
}
// La variable salary se voit assigner une valeur.
public void setSalary(double empSal) {
salary = empSal;
}
// Cette méthode affiche les détails de l'employé.
public void printEmp() {
System.out.println("name : " + name );
System.out.println("salary :" + salary);
}
public static void main(String args[]) {
Employee empOne = new Employee("Ransika");
empOne.setSalary(1000);
empOne.printEmp();
}
}
Cela produira le résultat suivant :
Sortie
name : Ransika salary :1000.0
Variables de classe/Statiques
Les variables de classe, également connues sous le nom de variables statiques, sont déclarées avec le mot-clé static dans une classe, mais en dehors d'une méthode, d'un constructeur ou d'un bloc.
Il n'y aurait qu'une seule copie de chaque variable de classe par classe, quel que soit le nombre d'objets créés à partir de celle-ci.
Les variables statiques sont rarement utilisées autrement que comme constantes. Les constantes sont des variables déclarées comme public/private, final et static. Les variables constantes ne changent jamais par rapport à leur valeur initiale.
Les variables statiques sont stockées dans la mémoire statique. Il est rare d'utiliser des variables statiques autrement que déclarées final et utilisées comme constantes publiques ou privées.
Les variables statiques sont créées au démarrage du programme et détruites à l'arrêt du programme.
La visibilité est similaire aux variables d'instance. Cependant, la plupart des variables statiques sont déclarées publiques car elles doivent être disponibles pour les utilisateurs de la classe.
Les valeurs par défaut sont les mêmes que pour les variables d'instance. Pour les nombres, la valeur par défaut est 0 ; pour les booléens, c'est false ; et pour les références d'objets, c'est null. Les valeurs peuvent être assignées lors de la déclaration ou dans le constructeur. De plus, les valeurs peuvent être assignées dans des blocs d'initialisation statique spéciaux.
Les variables statiques peuvent être accédées en appelant avec le nom de la classe ClassName.VariableName.
Lors de la déclaration de variables de classe comme public static final, les noms de variables (constantes) sont tous en majuscules. Si les variables statiques ne sont pas publiques et finales, la syntaxe de nommage est la même que pour les variables d'instance et locales.
Exemple
Live Demoimport java.io.*;
public class Employee {
// salary est une variable statique privée
private static double salary;
// DEPARTMENT est une constante
public static final String DEPARTMENT = "Development ";
public static void main(String args[]) {
salary = 1000;
System.out.println(DEPARTMENT + "average salary:" + salary);
}
}
Cela produira le résultat suivant :
Sortie
Development average salary:1000
Note – Si les variables sont accédées depuis une classe externe, la constante doit être accédée comme Employee.DEPARTMENT
Quelle est la suite ?
Vous avez déjà utilisé des modificateurs d'accès (public & private) dans ce chapitre. Le prochain chapitre expliquera les Modificateurs d'Accès et les Modificateurs Non-Accès en détail.
Java
- Maîtriser les variables C# et types de données primitifs : guide complet
- Variables, constantes et littéraux en C : Guide complet
- Comprendre les classes de stockage en C : Portée, durée de vie et performance
- Variables et littéraux en Java : Guide complet
- Types de données primitifs en Java : Guide complet avec exemples
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques