W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們可以將數(shù)組作為參數(shù)傳遞給方法或構(gòu)造函數(shù)。
我們傳遞給該方法的數(shù)組的類(lèi)型必須是與形式參數(shù)類(lèi)型兼容的賦值。
以下代碼顯示了如何將Array作為方法參數(shù)傳遞。
public class Main { public static void main(String[] args) { int[] num = { 1, 2 }; System.out.println("Before swap"); System.out.println("#1: " + num[0]); System.out.println("#2: " + num[1]); swap(num); System.out.println("After swap"); System.out.println("#1: " + num[0]); System.out.println("#2: " + num[1]); } public static void swap(int[] source) { if (source != null && source.length == 2) { // Swap the first and the second elements int temp = source[0]; source[0] = source[1]; source[1] = temp; } } }
上面的代碼生成以下結(jié)果。
因?yàn)閿?shù)組是一個(gè)對(duì)象,所以它的引用的副本被傳遞給一個(gè)方法。
如果方法更改數(shù)組參數(shù),實(shí)際參數(shù)不受影響。
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] origNum = { 1, 2, 3 }; System.out.println("Before method call:" + Arrays.toString(origNum)); // Pass the array to the method tryArrayChange(origNum); System.out.println("After method call:" + Arrays.toString(origNum)); } public static void tryArrayChange(int[] num) { System.out.println("Inside method-1:" + Arrays.toString(num)); // Create and store a new int array in num num = new int[] { 10, 20 }; System.out.println("Inside method?2:" + Arrays.toString(num)); } }
上面的代碼生成以下結(jié)果。
存儲(chǔ)在數(shù)組參數(shù)的元素中的值可以在方法中始終更改。
以下代碼顯示了如何更改方法中的數(shù)組參數(shù)的元素。
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] origNum = { 1, 2, 3 }; String[] origNames = { "Java", "SQL" }; System.out.println("Before method call, origNum:" + Arrays.toString(origNum)); System.out.println("Before method call, origNames:" + Arrays.toString(origNames)); // Call methods passing the arrays tryElementChange(origNum); tryElementChange(origNames); System.out.println("After method call, origNum:" + Arrays.toString(origNum)); System.out.println("After method call, origNames:" + Arrays.toString(origNames)); } public static void tryElementChange(int[] num) { if (num != null && num.length > 0) { num[0] = -1; } } public static void tryElementChange(String[] names) { if (names != null && names.length > 0) { names[0] = "T"; } } }
上面的代碼生成以下結(jié)果。
以下代碼顯示如何更改對(duì)象數(shù)組元素。
class Item { private double price; private String name; public Item(String name, double initialPrice) { this.name = name; this.price = initialPrice; } public double getPrice() { return this.price; } public void setPrice(double newPrice) { this.price = newPrice; } public String toString() { return "[" + this.name + ", " + this.price + "]"; } } public class Main { public static void main(String[] args) { Item[] myItems = { new Item("Pen", 2.11), new Item("Pencil", 0.10) }; System.out.println("Before method call #1:" + myItems[0]); System.out.println("Before method call #2:" + myItems[1]); // Call the method passing the array of Item tryStateChange(myItems); System.out.println("After method call #1:" + myItems[0]); System.out.println("After method call #2:" + myItems[1]); } public static void tryStateChange(Item[] allItems) { if (allItems != null && allItems.length > 0) { allItems[0].setPrice(0.38); } } }
上面的代碼生成以下結(jié)果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: