Les variables peuvent être utilisées de différentes manières dans un programme, toutefois toutes doivent être impérativement initialisées avant leur utilisation.
Type | Valeur initiale |
Exemple |
---|---|---|
byte short int |
0 | byte var = 0; short var = 0; int var = 0; |
long | 0L | long var = 0L; |
float | 0.0f | float var = 0.0f; |
double | 0.0d | double var = 0.0d; |
char | 'u0000' | char var = 'u0000'; |
boolean | false | boolean var = false; |
Objet | null | String var = null; |
Les variables déclarées dans les méthodes doivent être initialisées manuellement.
Les variables déclarées dans les classes et les tableaux sont initialisés automatiquement à une valeur nulle dépendant de leur type de données.
Une variable peut être manipulée directement à partir de sa classe d'appartenance, voire d'autres classes, il s'agît des variables membres.
class UneClasse { static int nombre; private float prix; public String nom_article = "DVD"; ... static public void UneMethode(int nb){ nombre = nb; ... } public int UneAutreMethode(String article){ if(nom_article == article) prix = 14.99f; ... } ... }
Cette catégorie de variables se divisent en deux parties :
Par conséquent, à l'instar d'une méthode, il est possible d'appeler une variable suite à l'instanciation de sa classe d'appartenance.
Dans ce cas, le modificateur d'accès n'a pas d'importance puisqu'il s'intéresse au niveau de classe et non au niveau d'instance. Ainsi, une variable déclarée avec le modificateur le plus restrictif, private pourra être accédée par un objet.
public static void main(String[] args){ UneClasse objet = new UneClasse(); objet.prix = 18.55; objet.nom_article = "pantalon"; ... }
Une variable peut être utilisée seulement à partir de sa méthode d'appartenance, c'est le cas des variables locales ou également appelées automatiques.
Elles ont une durée de vie limitée, le temps d'exécution d'une méthode.
Par ailleurs, le seul modificateur accepté pour ces variables, est final.
public class Variable { static String chaine; private String chaine2; public String chaine3; public static void main(String[] args){ int i; String valeur, temp = ""; Variable objet = new Variable(); if(args.length > 0) for(i = 0; i < args.length; i++) temp += " " + args[i]; else temp = "Valeur par defaut"; // La variable statique chaine est exploitable
// par toutes les méthodes de la classe chaine = temp; // chaine2 ne peut être utilisé directement dans
// une méthode statique comme suit chaine2 = temp;,
// par contre suite à l'instanciation de sa classe,
// la variable devient utilisable par le biais de son objet. objet.chaine2 = temp; // Par l'intermédiaire des arguments, les valeurs
// de variables locales peuvent être transmises à des
// méthodes, lesquels peuvent renvoyer d'autres valeurs. valeur = objet.affecte(temp); System.out.println("Variable statique : " + chaine); System.out.println("Variable privée : " + objet.chaine2); System.out.println("Variable locale : " + valeur); // Par l'intermédiaire des arguments, les valeurs
// de variables locales peuvent être transmises à des méthodes,
// lesquels peuvent renvoyer d'autres valeurs. objet.affiche(); } private void affiche(){ String chaine3 = chaine; System.out.println("Variable publique : " + chaine3); } public String transmet(String argument){ String chaine4 = argument; return chaine4; } }