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 pouvant être stockées dans cette mémoire; et l’ensemble des opérations pouvant être appliquées à la variable.
Vous devez déclarer toutes les variables avant de pouvoir les utiliser. Voici la forme de base d’une déclaration de variable −
data type variable ...] ;
Ici le type de données est l’un des types de données de Java et la 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; // Declares three ints, a, b, and c.int a = 10, b = 10; // Example of initializationbyte B = 22; // initializes a byte type variable B.double pi = 3.14159; // declares and assigns a value of PI.char a = 'a'; // the char variable a iis initialized with value 'a'
Ce chapitre expliquera les différents types de variables disponibles en langage Java. Il existe trois types de variables en Java −
- Variables locales
- Variables d’instance
- Variables de classe/statiques
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 sera détruite une fois qu’elle aura quitté la méthode, le constructeur ou le bloc.
-
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, les variables locales doivent donc être déclarées et une valeur initiale doit être attribuée avant la première utilisation.
Exemple
Ici, l’âge est une variable locale. Ceci est défini dans la méthode pupAge() et sa portée est limitée à cette méthode.
public 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 l’âge sans l’initialiser, il donnerait donc une erreur au moment de la compilation.
public 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 initializedage = 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 d’un bloc.
-
Lorsqu’un espace est alloué à un objet dans le tas, 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 plusieurs méthodes, constructeurs ou blocs, ou des parties essentielles de l’état d’un objet qui doivent être présentes dans toute 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 par exemple des variables.
-
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é des sous-classes peut être donnée pour ces variables à l’aide 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, elle est false et pour les références d’objets, elle est null. Les valeurs peuvent être attribuées lors de la déclaration ou dans le constructeur.
-
Les variables d’instance sont accessibles 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 complet. Référence d’objet.Nom variable.
Exemple
import java.io.*;public class Employee { // this instance variable is visible for any child class. public String name; // salary variable is visible in Employee class only. private double salary; // The name variable is assigned in the constructor. public Employee (String empName) { name = empName; } // The salary variable is assigned a value. public void setSalary(double empSal) { salary = empSal; } // This method prints the employee details. 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 : Ransikasalary :1000.0
Variables de classe/statiques
-
Les variables de classe également appelées variables statiques sont déclarées avec le mot-clé static dans un 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 à part d’être déclarées comme constantes. Les constantes sont des variables déclarées comme publiques/privées, finales et statiques. Les variables constantes ne changent jamais de leur valeur initiale.
-
Les variables statiques sont stockées dans la mémoire statique. Il est rare d’utiliser des variables statiques autres que déclarées finales 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 les variables d’instance. Pour les nombres, la valeur par défaut est 0 ; pour les Booléens, elle est false ; et pour les références d’objets, elle est null. Les valeurs peuvent être attribuées lors de la déclaration ou dans le constructeur. De plus, des valeurs peuvent être assignées dans des blocs d’initialisation statiques spéciaux.
-
Les variables statiques sont accessibles en appelant avec le nom de classe className.Nom variable.
-
Lorsque vous déclarez des variables de classe comme final statique public, les noms de variables (constantes) sont tous en majuscules. Si les variables statiques ne sont pas publiques et définitives, la syntaxe de nommage est la même que les variables d’instance et locales.
Exemple
import java.io.*;public class Employee { // salary variable is a private static variable private static double salary; // DEPARTMENT is a constant 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
Remarque − Si les variables sont accessibles depuis une classe extérieure, la constante doit être accessible en tant qu’employé.DÉPARTEMENT
Quelle est la prochaine étape ?
Vous avez déjà utilisé des modificateurs d’accès (public &privé) dans ce chapitre. Le chapitre suivant expliquera en détail les Modificateurs d’accès et les Modificateurs de Non-accès.