Passer par valeur et passer par référence en Java



Ce blog vous aide à comprendre Pass by Value et Pass by Reference en Java. Il explique également pourquoi Java est appelé Pass by Value avec un exemple.

Java est l'un des langages de programmation les plus fondamentaux que tout le monde puisse utiliser. C'est tellement simple en même temps, la possibilité de ce que vous pouvez développer avec Java, est infinie!C'est ce qui fait de Java le langage le plus utilisé dans l'industrie aujourd'hui.Ce blog vous aidera à comprendre le passage par valeur et le passage par référence en Java dans l'ordre suivant:

Passer par valeur et passer par référence en Java

Passer par valeur et Passer par référence sont les deux façons par lesquelles nous pouvons passer une valeur à la variable dans une fonction.





  • Passer par valeur: C'est un processus dans lequel les valeurs des paramètres de fonction sont copiées dans une autre variable et à la place cet objet copié est passé. C'est ce qu'on appelle l'appel par valeur.

  • Passer par référence: C'est un processus dans lequel la copie réelle de la référence est passée à la fonction. Ceci est appelé par référence.



En parlant de Java, on peut dire que Java est Pass by Value et non pass by reference.

Nous illustrerons l'énoncé cité plus haut par programmation.

Illustration avec programme

Disons que nous avons une classe Voiture comme ci-dessous.



que fait un scanner en java
public class Car {private String color public Car () {} public Car (String a) {this.color = a} public String getColor () {return color public void setColor (String color) {this.color = color}

Ensuite, nous avons un programme qui échange deux objets.

public class Disp {public static void main (String [] args) {Car red = new Car ('Red') Balloon yellow = new Balloon ('Yellow') swap (rouge, jaune) System.out.println ('red color = '+ red.getColor ()) System.out.println (' yellow color = '+ yellow.getColor ()) desc (yellow) System.out.println (' yellow color = '+ yellow.getColor ())} private static void desc (Voiture voiture) {// voiture = 100 balloon.setColor ('Red') // voiture = 100 voiture = nouvelle voiture ('Green') // voiture = 200 car.setColor ('Yellow') / / car = 200} // méthode d'échange public static void swap (Object o1, Object o2) {Object temp = o1 o1 = o2 o2 = temp}}

Production

Couleur rouge = rouge

questions d'entretien de google data scientist

Couleur jaune = jaune

Couleur jaune = rouge

Explication:

Donc, comme je l'ai dit plus tôt que JAVA est passé par Value, nous pouvons donc voir que les deux premières lignes de la sortie de la méthode swap () ne fonctionnaient pas. Expliquons en détail le code.

Passer par valeur et passer par référence en Java

Tout d'abord, nous avons créé une instance d'une classe en utilisant le Nouveau opérateur. Il est créé et la valeur est stockée à l'emplacement mémoire. Par conséquent, cette instance pointe l'emplacement de mémoire des objets qui est «rouge» et «jaune». Maintenant, lorsque nous appelons les valeurs avec de nouveaux objets o1 et o2, alors il pointe vers l'emplacement mémoire des deux objets qui est «rouge» et «jaune». Ainsi, lorsque la méthode swap est appelée au début, elle pointe vers l'emplacement mémoire de «Red». Dans la ligne suivante, la référence de voiture est remplacée par l'adresse suivante et elle est pointée vers l'emplacement de mémoire «jaune». Par conséquent, ils sont échangés à la deuxième étape, pas à la première étape. C'est pourquoi JAVA est appelé Pass by Value et non référence.

Maintenant que vous avez compris Pass by Value et Pass by Reference en Java, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour les étudiants et les professionnels souhaitant devenir développeur Java. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de cet article «Passer par valeur et passer par référence en Java» et nous vous répondrons dans les plus brefs délais.