Variables en Java : Guide Complet
Apprenez à déclarer, initialiser et utiliser les variables Java avec les différents types de données
Qu'est-ce qu'une variable en Java ?
Une variable Java est un espace mémoire qui permet de stocker une valeur (value) dans un programme Java. Chaque variable possède un type qui détermine le type de données qu'elle peut contenir et un nom (identifier) pour y accéder dans le code Java.
En Java, les variables sont fortement typées : vous devez déclarer (declare) le type de chaque variable avant de l'utiliser. Cette approche garantit la sécurité du code Java et permet au compilateur de détecter les erreurs (error) avant l'exécution du programme (program). Apprendre à utiliser les variables est essentiel pour tout développeur Java débutant ou confirmé.
Le langage Java propose plusieurs types de variables pour répondre à différents besoins :
des types primitifs comme int, double, boolean et char,
ainsi que des types objets comme String. Ce guide Java vous explique tout ce que
vous devez savoir sur les variables.
Déclaration de variables Java
Pour déclarer (declare) une variable en Java, vous devez spécifier son type suivi de son nom. La syntaxe (syntax) de déclaration (declaration) d'une variable Java est la suivante :
// Syntaxe de déclaration d'une variable Java
type nomVariable;
// Exemples de déclaration
int age;
double salaire;
String nom;
boolean actif;
Initialisation d'une variable
Vous pouvez initialiser une variable lors de sa déclaration ou plus tard dans le code. L'initialisation consiste à assigner une valeur (value) à la variable :
// Déclaration puis initialisation
int age;
age = 25;
// Déclaration et initialisation en une ligne
int nombre = 42;
double prix = 19.99;
String message = "Hello";
boolean estValide = true;
Types de variables en Java
Le langage distingue trois catégories principales selon leur portée et leur durée de vie. Comprendre ces types est essentiel pour écrire du code propre et efficace :
1. Variables locales
Les variables locales sont déclarées (declared) à l'intérieur d'une méthode (method), d'un constructeur (constructor) ou d'un bloc de code. Elles n'existent que pendant l'exécution de ce bloc :
public class Exemple {
public void calculer() {
// Variable locale - visible uniquement dans cette méthode
int resultat = 0;
double taux = 0.19;
for (int i = 0; i < 10; i++) {
// i est aussi une variable locale au bloc for
resultat += i;
}
System.out.println(resultat);
}
}
2. Variables d'instance
Les variables d'instance (instance variables) sont déclarées dans une class mais en dehors de toute méthode. Chaque objet (object) de la classe possède sa propre copie :
public class Personne {
// Variables d'instance - chaque objet a ses propres valeurs
String nom;
int age;
double taille;
boolean estMajeur;
public void afficher() {
System.out.println("Nom: " + nom + ", Age: " + age);
}
}
3. Variables de classe (static)
Les variables static (variables de classe) sont partagées par toutes les instances
d'une classe. Elles sont déclarées avec le mot-clé static :
public class Compteur {
// Variable static - partagée par tous les objets
static int nombreInstances = 0;
// Variable d'instance
int id;
public Compteur() {
nombreInstances++; // Incrémente la variable static
this.id = nombreInstances;
}
public static void main(String[] args) {
Compteur c1 = new Compteur();
Compteur c2 = new Compteur();
System.out.println("Nombre d'instances: " + nombreInstances); // 2
}
}
Types de données primitifs en Java
Le langage propose 8 types primitifs (primitive types) pour stocker les données (data) de base. Ces types de données sont les plus efficaces en termes de mémoire et de performance. Chaque type primitif a une taille fixe et une plage de valeurs (values) définie :
Types entiers
| Type | Taille | Plage de valeurs | Exemple |
|---|---|---|---|
byte |
1 byte | -128 à 127 | byte b = 100; |
short |
2 bytes | -32 768 à 32 767 | short s = 1000; |
int |
4 bytes | -2³¹ à 2³¹-1 | int i = 100000; |
long |
8 bytes | -2⁶³ à 2⁶³-1 | long l = 100000L; |
// Exemples de types entiers en Java
byte petitNombre = 127;
short nombreCourt = 32000;
int age = 25;
int population = 1000000;
long distanceEtoile = 9460730472580800L; // Suffixe L pour long
Types décimaux (floating-point)
| Type | Taille | Précision | Exemple |
|---|---|---|---|
float |
4 bytes | ~7 chiffres | float f = 3.14f; |
double |
8 bytes | ~15 chiffres | double d = 3.14159; |
// Exemples de types décimaux en Java
float pi = 3.14159f; // Suffixe f obligatoire pour float
double prix = 19.99;
double tauxInteret = 0.05;
double resultatCalcul = 123.456789012345;
Type caractère (char)
Le type char stocke un seul caractère (character) Unicode sur 2 bytes :
// Exemples de type char en Java
char lettre = 'A';
char chiffre = '7';
char symbole = '@';
char unicode = '\u0041'; // Caractère 'A' en Unicode
Type booléen (boolean)
Le type boolean ne peut avoir que deux valeurs : true ou false :
// Exemples de type boolean en Java
boolean estActif = true;
boolean aTermine = false;
boolean estMajeur = age >= 18;
boolean estValide = nom != null && !nom.isEmpty();
Type String en Java
La classe String en Java n'est pas un type primitif mais une classe (class) très utilisée
pour manipuler les chaînes de caractères (strings). En Java, les String sont des objets immuables,
ce qui signifie que leur valeur (value) ne peut pas être modifiée après création :
// Déclaration de variables String
String nom = "Jean";
String message = "Hello World";
String vide = "";
String texte = new String("Exemple");
// Concaténation de String
String prenom = "Marie";
String nomComplet = prenom + " " + nom;
System.out.println(nomComplet); // Marie Jean
Variables final en Java
Le mot-clé final permet de déclarer une constante dont la valeur (value)
ne peut plus être modifiée après initialisation. Les constantes sont très utilisées
pour définir des valeurs fixes dans vos programmes :
public class Constantes {
// Constantes de classe (static final)
public static final double PI = 3.14159265359;
public static final int MAX_UTILISATEURS = 100;
public static final String VERSION = "2.0";
public void exemple() {
// Variable finale locale
final int TAILLE_MAX = 50;
// TAILLE_MAX = 60; // Erreur de compilation !
final double taux = calculerTaux();
System.out.println("Taux: " + taux);
}
private double calculerTaux() {
return 0.15;
}
}
Convention Java : Les constantes (
static final) sont écrites en MAJUSCULES avec des underscores pour séparer les mots :MAX_VALUE,DEFAULT_SIZE.
Règles de nommage des variables Java
Le langage impose des règles strictes pour les noms (names) des identifiants. Respecter ces conventions rend votre code plus lisible et maintenable :
- Commence par une lettre,
$ou_ - Peut contenir des lettres, chiffres (numbers),
$et_ - Sensible à la casse (
age≠Age≠AGE) - Ne peut pas être un mot réservé (reserved) Java
- Pas de limite de longueur
// Noms de variables valides
int age;
int _compteur;
int $prix;
int nombreUtilisateurs;
int nombre2;
// Noms de variables INVALIDES
// int 2nombre; // Ne peut pas commencer par un chiffre
// int mon-age; // Le tiret n'est pas autorisé
// int class; // class est un mot réservé Java
// int public; // public est un mot réservé Java
Conventions de nommage
- camelCase pour les variables :
nombreUtilisateurs,prixTotal - PascalCase pour les classes :
Personne,CompteBancaire - SCREAMING_SNAKE_CASE pour les constantes :
MAX_SIZE,PI
Valeurs par défaut des variables Java
Les champs d'instance et static ont des valeurs par défaut (default) si non initialisés. Les locales n'ont pas de valeur par défaut et doivent être initialisées avant utilisation :
| Type | Valeur par défaut |
|---|---|
byte, short, int, long | 0 |
float, double | 0.0 |
char | '\u0000' |
boolean | false |
| Objets (String, etc.) | null |
public class ValeursDefaut {
// Variables d'instance avec valeurs par défaut
int entier; // 0
double decimal; // 0.0
boolean flag; // false
String texte; // null
public static void main(String[] args) {
ValeursDefaut obj = new ValeursDefaut();
System.out.println("int: " + obj.entier); // 0
System.out.println("double: " + obj.decimal); // 0.0
System.out.println("boolean: " + obj.flag); // false
System.out.println("String: " + obj.texte); // null
}
}
Portée des variables Java (scope)
La portée (scope) définit où une donnée est visible (visible) et accessible (access) dans le code. Comprendre ce concept est crucial :
public class PorteeVariables {
// Variable de classe - accessible partout dans la classe
static int compteurGlobal = 0;
// Variable d'instance - accessible dans toute l'instance
private int id;
public void methode() {
// Variable locale - accessible uniquement dans cette méthode
int x = 10;
if (x > 5) {
// Variable de bloc - accessible uniquement dans ce if
int y = 20;
System.out.println(x + y); // OK
}
// System.out.println(y); // Erreur ! y n'est plus visible
}
}
Modificateurs d'accès des variables Java
Le langage propose quatre niveaux de visibilité pour les champs d'instance et de classe. Ces modificateurs d'accès contrôlent qui peut accéder (access) aux données :
public: accessible de partoutprotected: accessible dans le package et les sous-classes- (défaut) : accessible uniquement dans le même package
private: accessible uniquement dans la classe
public class Utilisateur {
public String nom; // Accessible partout
protected int age; // Package + sous-classes
String email; // Package uniquement (défaut)
private String motDePasse; // Classe uniquement
// Bonne pratique : variables private + getters/setters
private double solde;
public double getSolde() {
return this.solde;
}
public void setSolde(double solde) {
if (solde >= 0) {
this.solde = solde;
}
}
}
Exemple complet : programme Java avec variables
Voici un exemple (example) complet montrant l'utilisation des différents types dans un programme concret :
public class GestionEtudiants {
// Constante static final
public static final int AGE_MINIMUM = 16;
// Variable static
private static int nombreEtudiants = 0;
// Variables d'instance
private String nom;
private int age;
private double moyenne;
private boolean estInscrit;
// Constructeur
public GestionEtudiants(String nom, int age) {
this.nom = nom;
this.age = age;
this.moyenne = 0.0;
this.estInscrit = false;
nombreEtudiants++;
}
// Méthode avec variables locales
public void calculerMoyenne(double[] notes) {
if (notes == null || notes.length == 0) {
return;
}
double somme = 0.0;
int count = notes.length;
for (int i = 0; i < count; i++) {
somme += notes[i];
}
this.moyenne = somme / count;
}
public static void main(String[] args) {
// Création d'objets
GestionEtudiants etudiant1 = new GestionEtudiants("Alice", 20);
GestionEtudiants etudiant2 = new GestionEtudiants("Bob", 22);
// Utilisation des variables
double[] notesAlice = {15.5, 14.0, 16.5, 18.0};
etudiant1.calculerMoyenne(notesAlice);
System.out.println("Nombre d'étudiants: " + nombreEtudiants);
System.out.println("Moyenne Alice: " + etudiant1.moyenne);
}
}
Bonnes pratiques pour les variables Java
Voici les bonnes pratiques à suivre pour déclarer et utiliser vos données efficacement :
- Noms explicites :
nombreUtilisateursplutôt quen - Déclarer au plus proche : déclarez les variables là où vous les utilisez
- Privilégier final : utilisez
finalquand la valeur ne change pas - Encapsulation : préférez
privateavec getters/setters - Initialiser explicitement : ne comptez pas sur les valeurs par défaut
- Éviter les variables globales : limitez l'usage des variables static
Questions fréquentes sur les variables Java
Comment déclarer une variable en Java ?
Pour déclarer une variable Java, utilisez la syntaxe : type nom = valeur;.
Par exemple : int age = 25; ou String nom = "Jean";.
Quelle est la différence entre int et Integer ?
int est un type primitif, tandis que Integer est la classe wrapper correspondante.
Utilisez le primitif pour les calculs simples et le wrapper quand vous avez besoin d'un objet (collections, null).
Quand utiliser static en Java ?
Utilisez static quand une variable doit être partagée entre toutes les instances d'une classe.
Les constantes (static final) et les compteurs sont des cas d'usage courants.
Ressources pour apprendre Java
Pour approfondir vos connaissances sur les variables Java et le langage Java en général :
- Introduction à Java - Les bases du langage Java
- Opérateurs Java - Manipuler les variables avec les opérateurs
- Structures de contrôle - if, for, while en Java
- Tableaux Java - Stocker plusieurs valeurs
- Classes et objets - Programmation orientée objet Java
- Collections List - ArrayList et LinkedList
- Exceptions Java - Gestion des erreurs
- Nouveautés Java 25 - Les dernières fonctionnalités Java
- Documentation Oracle - Java variables (en anglais)
Conclusion
Les variables sont fondamentales pour stocker et manipuler des données (data)
dans vos programmes. Maîtriser les différents types de données (int, double,
boolean, char, String), comprendre la portée (scope) et utiliser
correctement les modificateurs (public, private, static, final)
vous permettra d'écrire du code propre et performant.
Maintenant que vous maîtrisez ces concepts, vous pouvez passer aux opérateurs pour apprendre à effectuer des calculs et des comparaisons.