參數(shù)傳值 方法中最重要的部分之一就是方法的參數(shù),,參數(shù)屬于局部變量,當(dāng)對象調(diào)用方法時(shí),,參數(shù)被分配內(nèi)存空間,并要求調(diào)用者向參數(shù)專遞值,,即方法被調(diào)用時(shí),,參數(shù)變量必須有具體的值。 傳值機(jī)制 在Java中,,方法的所有參數(shù)都是“傳值”的,,也就是說,方法中參數(shù)變量的值是調(diào)用者指定的值的拷貝,。例如,,如果向方法的int型參數(shù)x傳遞一個(gè)int值,那么參數(shù)x得到的值是傳遞的值的拷貝,。 基本數(shù)據(jù)類型的傳值 對于基本數(shù)據(jù)類型的參數(shù),,向該參數(shù)傳遞的值的級別不可以高于該參數(shù)的級別 。 比如定義了一個(gè)long型,,是可以向它傳遞int short,,但是比Long型高的float和double是不可以傳遞的。 引用參數(shù)類型的傳值 當(dāng)參數(shù)是引用類型時(shí),,“傳值”傳遞的是變量中存放的“引用”,,而不是變量所引用的實(shí)體。 可變參數(shù) 可變參數(shù)是指在聲明方法時(shí)不給出參數(shù)列表中從某項(xiàng)直至最后一項(xiàng)參數(shù)的名字和個(gè)數(shù),,但這些參數(shù)的類型必須相同,。可變參數(shù)使用“…”表示若干個(gè)參數(shù),,這些參數(shù)的類型必須相同,,最后一個(gè)參數(shù)必須是參數(shù)列表中的最后一個(gè)參數(shù)。例如: public void f(int … x) 那么,,方法f的參數(shù)列表中,,從第1個(gè)至最后一個(gè)參數(shù)都是int型,但連續(xù)出現(xiàn)的int型參數(shù)的個(gè)數(shù)不確定,。稱x是方法f的參數(shù)列表中的可變參數(shù)的“參數(shù)代表”,。 參數(shù)代表可以通過下標(biāo)運(yùn)算來表示參數(shù)列表中的具體參數(shù),即x[0],,x[1]…x[m]分別表示x代表的第1個(gè)至第m個(gè)參數(shù),。 PS:見示例。 Computer類 提供了一個(gè)求和的方法 public class Computer { public int getSum(int... x) { //返回int類型求和的方法 int sum = 0; for (int i = 0; i < x.length; i++) { sum = sum + x[i]; } return sum; } } Demo16 public class Demo16 { public static void main(String[] args) { Computer computer = new Computer(); //聲明對象并完成初始化 int result = computer.getSum(123,345,567); System.out.println("123,345,567之和:"+result); } } 結(jié)果 |
|