Passer par valeur --- transmettre les paramètres de type de données de base
Copiez le code comme suit :
classe publique PassValue{
static void exchange(int a, int b){//Méthode statique, échange les valeursde a et b
température int;
température = a;
une = b;
b = température ;
}
public static void main (String[] args){
entier je = 10 ;
entier j = 100 ;
System.out.println("avant appel : " + "i=" + i + "/t" + "j = " + j);//avant appel
Exchange(i, j); //Transfert de valeur, la méthode principale ne peut appeler que des méthodes statiques
System.out.println("après appel : " + "i=" + i + "/t" + "j = " + j);//Après appel
}
}
Résultats en cours d'exécution :
Copiez le code comme suit :
avant appel : i = 10 j = 100
après appel : i = 10 j = 100
Remarque : lors de l'appel d'exchange(i, j), les paramètres réels i et j transmettent respectivement leurs valeurs aux paramètres formels correspondants a et b. Lorsque la méthode Exchange() est exécutée, les valeurs du formel changent. les paramètres a et b n'affectent pas les paramètres réels. Les valeurs de i et j n'ont pas changé avant et après l'appel.
Passage par référence --- objet comme paramètre
Copiez le code comme suit :
Livre de classe{
Nom de la chaîne ;
prix du folat privé ;
Livre(String n, float){ //Méthode de construction
nom = n;
prix = p ;
}
static void change(Book a_book, String n, float p){ //Méthode statique, objet en paramètre
a_book.name = n;
a_book.prix = p;
}
public void output(){ //Méthode d'instance, informations sur l'objet de sortie
System.out.println("nom : " + nom + "/t" + "prix : " + prix);
}
}
classe publique PassAddr{
public static void main(String [] arguments){
Livre b = new Book("java2", 32.5f);
System.out.print("avant l'appel:/t"); //Avant d'appeler
b.output();
b.change(b, "c++", 45.5f); //Transfert de référence, transférer la référence de l'objet b, modifier la valeur de l'objet b
System.out.print("après appel:/t"); //Après l'appel
b.output();
}
}
Résultats en cours d'exécution :
Copiez le code comme suit :
avant appel : nom : java2 prix : 32,5
après appel : nom :c++ prix :45,5
Remarque : lors de l'appel de change(b,"c++",45.5f), l'objet b est utilisé comme paramètre réel et la référence est transmise au paramètre formel correspondant a_book. En fait, a_book pointe également vers le même objet, c'est-à-dire. , l'objet a deux noms de référence : b et a_book. Lors de l'exécution de la méthode change(), l'opération sur le paramètre formel a_book est l'opération sur le paramètre réel b.