Passant paramètres des fonctions en java
Résumer:
1. Lorsque vous passez un objet (une référence à un objet) en tant que paramètre, la référence est transmise (équivalente à un pointeur). En d'autres termes, les modifications apportées aux paramètres de la fonction affecteront l'objet d'origine.
2. Lorsque vous passez un type primitif ou un ensemble d'enveloppement de types primitifs en tant que paramètres, la valeur est passée. En d'autres termes, les modifications apportées aux paramètres de la fonction n'affecteront pas la variable d'origine.
3. Lors de la transmission du tableau (référence du tableau)) en tant que paramètre, la référence est passée (équivalente au pointeur). En d'autres termes, les modifications apportées aux paramètres de la fonction affecteront le tableau d'origine.
4. Lorsque le type de chaîne (référence) est passé sous forme de paramètre, il s'agit d'une référence. Cependant, lorsqu'une modification de la chaîne est effectuée, un nouvel objet de chaîne sera généré et la valeur de l'objet de chaîne d'origine ne sera pas modifiée. (Cependant, vous pouvez attribuer une référence au nouvel objet à la référence d'origine. Cela donne aux gens le phénomène superficiel que l'objet d'origine a changé, mais il n'a pas changé, mais la référence d'origine a indiqué le nouvel objet).
package stringTest; classe A {int a = 1; char b = 'a'; public a () {} public a (int _a, char _b) {this.a = _a; this.b = _b; } public String toString () {return "a =" + this.a + ", b =" + this.b; }} public class ReferenceTest {public static a changea (a class) {class.a = 2; class.b = 'b'; classe de retour; } public static string changeString (string str) {System.out.println (str.hashcode ()); str = str.tolowercase (); System.out.println (str.hashcode ()); retour STR; } public static int changeInt (int a) {a = a + 1; retourner a; } public static Integer ChangeInteger (entier a) {a = new Integer (9); retourner a; } public static int [] ChangeIntArray (int a []) {a [0] = 10; retourner a; } public static void printRay (int a []) {for (int i = 0; i <a.length; i ++) {System.out.print (a [i] + ""); } System.out.println (); } public static void main (String [] args) {// L'objet personnalisé transmet une référence a a = new a (); A b = changea (a); System.out.println (a); System.out.println (a); System.out.println (b); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- un paramètre (mais la valeur de l'objet String ne peut pas être modifiée. System.out.println (STR1); System.out.println (STR2); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println (inta); System.out.println (INTB); System.out.println (INTB); System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [] ArrayB = ChangeIntArray (Arraya); Résultats en cours:
a = 2, b = b
a = 2, b = b
-------------------------
711139030
711139030
226046678
226046678
Huhualiang
huhumianang
-------------------------
8
9
-------------------------
1
9
-------------------------
10 1 2 3
10 1 2 3
Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!