Java基礎 - 面向對象 - 類方法傳參

調用方法時能夠給該方法傳遞一個或多個值,傳給方法的值叫實參,在方法內部,接收實參的變量叫作形參,形參的聲明語法與變量的聲明語法同樣。形參只在方法內部有效。數組

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 }
相關文章
相關標籤/搜索