Maison >Java >javaDidacticiel >Appel Java par référence
La définition de l'appel par référence en Java sous-entend que l'on utilise des paramètres comme référence. Nous envoyons la référence de l'argument en paramètre à la fonction qui l'utilisera. Nous expédions les deux arguments sous forme de paramètres réels et formels. Ceux-ci feront référence à l’emplacement exact. Cela signifie que chaque fois que des modifications sont apportées à une fonction particulière, ces modifications seront reflétées dans les paramètres réels lors de l'appel du processus. Il n'est pas nécessaire de le spécifier ou de l'appeler explicitement. L'adresse des variables est envoyée, ce qui signifie que ces variables réelles appellent la fonction.
PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Vous trouverez ci-dessous une manière d'implémenter l'appel par référence en Java :
void function_name(datatype1, datatype2); //Function declaration int main() { Datatype declaration; Function Call(datatype1, datatype2); } Function_name () { // Function definition }
Explication : La syntaxe ci-dessus déclare d'abord une fonction. Contrairement au C, en Java, il n'existe aucune disposition spécifique permettant de prendre la variable à une adresse particulière. Java utilise l'appel par valeur qui transmet également les variables de référence.
La fonctionnalité de base de l'appel par référence est que nous nous référons à l'adresse de la variable. Et donc s’il y a un changement à l’adresse de la variable, il sera reflété partout où la fonction qui l’utilise est appelée. Le code ci-dessous vous aidera à mieux comprendre cette fonctionnalité.
Code :
Void inc(int ); Public static voidmain(string args[]) { int a = 10; System.out.println("Before function was called the Value of a = ", a); void inc(); System.out.println("After function is called Value of a = ", a); } Void inc(intx) { int x = x + 1; }
Ici, nous avons déclaré la fonction inc avec une variable. Après cela, nous avons déclaré une variable. La variable prendra la valeur telle que définie. Mais au fur et à mesure, nous appelons la fonction « inc ». La fonction « inc » sera appelée, et chaque fois qu’elle sera appelée, elle pointera vers l’emplacement de la variable « a ». Cela créera une copie de la variable de référence, et une fois qu'il y aura des valeurs, celles-ci seront transmises aux méthodes utilisées. Cette référence pointe vers l’adresse de notre variable « a ». Il incrémentera cette valeur, puis lorsque la fonction sera appelée, elle prendra la valeur de cette adresse. Ce sera 11 dans ce cas car la fonction inc augmente la valeur de 1. La valeur sera imprimée dans le fichier principal. Nous pouvons également créer une copie de la variable de référence. Si un nouvel objet ou une variable est créé pour référence, il ne sera pas affecté car l'adresse principale reste la même.
Nous pouvons vérifier quelques exemples supplémentaires à ce sujet, qui nous aideront à mieux comprendre :
Échanger des numéros en Java en utilisant l'appel par référence. Le code ci-dessous est un exemple dans lequel nous pouvons échanger deux numéros en utilisant l'appel par référence :
Code :
public class EduByReference { public static void main(String[] args) { int num1 = 55; int num2 = 85; System.out.println("The values before swapping are: number1 = " + num1 + " and number2 = " + num2); // Calling the function to swap swapByReference(num1, num2); System.out.println("\nThe numbers before and after swapping will be same in main:"); System.out.println("Once the swapping is done, the values will be back to original: num1 = " + num1 + " and num2 is " + num2); } public static void swapByReference(int num1, int num2) { System.out.println("Before swapping in function locally, num1 = " + num1 + " num2 = " + num2); // Swapping number1 and number2 int temp = num1; num1 = num2; num2 = temp; System.out.println("After swapping in function locally, num1 = " + num1 + " num2 = " + num2); } }
Sortie :
Explication : Le programme ci-dessus échange deux numéros. Nous avons pris deux variables entières, a et b, avec respectivement les valeurs 55 et 85. Nous appelons ensuite la fonction swapByReference(a, b). Ici, dans cette fonction, nous recevons ces variables envoyées depuis le main. La fonction prend les valeurs de a et b puis échange les valeurs de ces deux variables. Pour l'échange, nous avons utilisé une autre variable, « c ». Cette fonction renverra la valeur de 85 et 55 une fois cela fait. Nous voyons que les valeurs restent globalement les mêmes qu’auparavant. Il s'agit de l'utilisation d'un appel par référence. Une fois la fonction appelée, la valeur d'origine est stockée telle quelle et les valeurs sont modifiées pour la fonction. Les valeurs d'origine restent intactes. Le résultat de la fonction ci-dessus sera comme ci-dessous.
Vous pouvez voir une fois le travail par fonction effectué, les valeurs d'origine sont conservées en raison de l'adresse de la variable. Les variables n'ont pas changé de position.
Ajout de deux numéros en utilisant l'appel par référence en Java :
Code :
public class EduAddByReference{ int d=50; public void add(int d){ d=d+100;//These changes will happen locally, that means it will be reflected only in this function System.out.println("The value in function after performing addition is " + d); } public static void main(String args[]){ EduAddByReference edad=new EduAddByReference(); System.out.println("before change "+edad.d); edad.add(500); System.out.println("after change "+edad.d); } }
Sortie :
Explication : Le programme ci-dessus est un autre exemple de référence d'appel en Java. Ici, dans l’ensemble, nous avons appelé la fonction EduAddByReference(). Cette fonction prend le numéro du principal et l'ajoute. Cette édition est en cours d'impression dans la fonction. Cette valeur de la variable restera locale à cette fonction. Une fois que le contrôle de la fonction passe au principal, il imprime à nouveau la variable, qui aura la valeur d'origine. Vous pouvez consulter le résultat ci-dessous, qui nous aidera à mieux faire fonctionner ce programme.
L'appel par référence en Java appelle les fonctions et utilise l'adresse d'un opérande ou d'une variable pour vérifier les données. La valeur change localement et n’est persistante que jusqu’à la portée de la fonction. L'appel par référence permet de conserver les valeurs d'origine intactes et de les modifier chaque fois que nécessaire. Il peut être utilisé chaque fois que vous souhaitez qu’une variable effectue une opération localement. Il conserve l'originalité d'une variable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!