Passage par valeur en Java
Glissez pour afficher le menu
Comprendre le passage par valeur en Java
En Java, tous les arguments de méthode sont passés par valeur. Cela signifie que lorsque vous transmettez une variable à une méthode, Java copie la valeur de cette variable et envoie cette copie à la méthode. La méthode travaille alors avec cette copie, et non avec la variable originale de votre code.
- Lorsque vous transmettez un type primitif (comme
int,doubleouboolean), la méthode reçoit une copie de la valeur réelle. Toute modification apportée au paramètre à l'intérieur de la méthode n'affecte pas la variable originale en dehors de la méthode ; - Lorsque vous transmettez une référence d'objet (comme un tableau ou une classe personnalisée), Java transmet toujours la valeur de la référence (l'adresse mémoire). La méthode reçoit une copie de cette référence, de sorte que l'original et le paramètre de la méthode pointent vers le même objet. Vous pouvez modifier l'état interne de l'objet à l'intérieur de la méthode, mais si vous assignez un nouvel objet au paramètre, la référence originale en dehors de la méthode n'est pas affectée.
Ce comportement est important pour anticiper comment vos variables changent — ou restent inchangées — après l'appel de méthodes en Java.
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int number = 10; System.out.println("Before method call: number = " + number); changeValue(number); System.out.println("After method call: number = " + number); } public static void changeValue(int num) { num = 20; System.out.println("Inside method: num = " + num); } }
Dans ce code, la méthode changeValue reçoit une copie de la variable number car Java utilise le passage par valeur.
La modification de num à l'intérieur de la méthode n'affecte pas number dans main, donc sa valeur reste 10 après l'appel de la méthode.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion