Javaの関数のパラメーターを渡す
要約:
1。パラメーターとしてオブジェクト(オブジェクトへの参照)を渡すとき、参照は渡されます(ポインターに相当)。言い換えれば、関数のパラメーターに加えられた変更は、元のオブジェクトに影響します。
2.プリミティブタイプまたはプリミティブタイプのラッピングセットをパラメーターとして渡すと、値が渡されます。言い換えれば、関数のパラメーターに加えられた変更は、元の変数に影響しません。
3。パラメーターとして配列(配列参照)を渡すとき、参照は渡されます(ポインターに相当)。言い換えれば、関数のパラメーターに加えられた変更は、元の配列に影響します。
4.文字列タイプ(参照)がパラメーターとして渡される場合、それは参照です。ただし、文字列の変更が行われると、新しい文字列オブジェクトが生成され、元の文字列オブジェクトの値は変更されません。 (ただし、新しいオブジェクトへの参照を元の参照に割り当てることができます。これにより、元のオブジェクトが変更された表面的な現象が人々に与えられますが、変更されていませんが、元の参照は新しいオブジェクトを指しています)。
パッケージStringTest;クラス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';クラスを返す; } public static string changestring(string str){system.out.println(str.hashcode()); str = str.tolowercase(); system.out.println(str.hashcode()); strを返します。 } public static int changeint(int a){a = a+1; aを返します。 } public static integer changeinteger(integer a){a = new Integer(9); aを返します。 } public static int [] ChangeIntArray(int a []){a [0] = 10; aを返します。 } public static void printArray(int a []){for(int i = 0; i <a.length; i ++){system.out.print(a [i]+""); } system.out.println(); } public static void main(string [] args){//カスタムオブジェクトは参照a a = new a(); a b = changea(a); System.out.println(a); System.out.println(a); System.out.println(b); System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //The String object is also a reference asパラメーター(ただし、文字列オブジェクトの値は、変更された値を保存するために新しい文字列オブジェクトを再現します)str1 = "huhualiang"; System.out.println(str1); out.println(str2); System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- int int intb=changeint(inta); System.out.println(inta); System.out.println(intb); System.out.println(intb); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [] arrayb = changeintarya(arraya);実行結果:
a = 2、b = b
a = 2、b = b
------------------------------
711139030
711139030
226046678
226046678
huhualiang
Huhoulianang
------------------------------
8
9
------------------------------
1
9
------------------------------
10 1 2 3
10 1 2 3
読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!