調用方法時能夠給該方法傳遞一個或多個值,傳給方法的值叫實參,在方法內部,接收實參的變量叫作形參,形參的聲明語法與變量的聲明語法同樣。形參只在方法內部有效。數組
Java中方法的參數主要有3種,分別爲值參數、引用參數和不定長參數spa
值參數代表實參與形參之間按值傳遞,當使用值參數的方法被調用時,編譯器爲形參分別存儲單元,而後將對應的實參的值複製到形參中,因爲是值類型的傳遞方式,因此在方法中對值類型的形參的修改並不會影響實參code
1 package mingri.chapter_6; 2 3 public class Book { 4 5 public static void main(String[] args) { 6 Book book = new Book(); 7 int shelf = 30; 8 int box = 40; 9 10 System.out.println("把書架上的書所有放進箱子後,箱子裏一共有" 11 + book.add(shelf, box) + "本書。\n明細以下:書架上" 12 + shelf + "本書,箱子裏原有" + box + "本書" 13 ); 14 } 15 16 private int add(int shelf, int box) { 17 box += shelf; 18 return box; 19 } 20 }
若是在給方法傳遞參數時,參數的類型是數組或者其餘引用類型,在方法中對參數的修改會反應到原有的數組或者其餘引用類型上,這種類型的方法參數被稱之爲引用參數blog
1 package mingri.chapter_6; 2 3 public class ExchangeRate { 4 5 public static void main(String[] args) { 6 ExchangeRate rate = new ExchangeRate(); 7 double[] denomination = {1, 10, 100}; // 定義一個一維數組,用來存儲紙幣面額 8 9 // 輸出三種面值的美圓金額 10 System.out.println("美圓:"); 11 for (int i = 0; i < denomination.length; i++) { 12 System.out.println(denomination[i] + "美圓 "); 13 } 14 15 // 傳入一個引用參數 16 rate.chage(denomination); 17 // 輸出與三種面值的美圓等值的人民幣 18 System.out.println("\n人民幣:"); 19 for (int i = 0; i < denomination.length; i++) { 20 System.out.println(denomination[i] + "元"); 21 } 22 23 } 24 25 public void chage(double[] i) { 26 // 接收的引用參數,修改引用參數中的值後,會改變傳入進來的引用參數 27 for (int i1 = 0; i1 < i.length; i1++) { 28 i[i1] = i[i1] * 6.903; 29 } 30 } 31 }
聲明方法時,若是有若干個相同類型的參數,能夠定義爲不定長參數編譯器
1 package mingri.chapter_6; 2 3 public class demo { 4 5 public static void main(String[] args) { 6 demo dm = new demo(); 7 int result = dm.add(20, 30, 40, 50); 8 System.out.println("result -->" + result); 9 } 10 11 12 int add(int... x) { 13 int result = 0; 14 for (int i = 0; i < x.length; i++) { 15 result += x[i]; 16 } 17 18 return result; 19 } 20 }