『壹』 java 方法 傳參
在定義方法的時候,方法的參數叫形參(形式參數),在調用方法的時候,給方內法傳遞的參容數叫實參(實際參數),你的寫法有問題,在調用abc方法的時候,可以直接把45寫在方法後面(直接寫45需要類型轉換,否則報錯),也可以把45先賦值給一個變數,然後把變數當成參數傳給abc方法,不能又寫變數名,又寫45啊,標准寫法如下:
byte a=45;
abc(a);//或者是abc((byte)45)
public static void abc(byte a){
}
『貳』 java 類之間數值的傳遞
Java語言中方法間的數據傳遞方法
方法是數據加工處理或相應操作的基本模塊,為了實現某種需求而調用一個方法,需要為被調用的方法傳遞數據,以便於被調用的方法依據所提供的數據進行相應的操作。
C++語言的函數間的數據傳遞可以分為:數值傳遞、地址傳遞和引用傳遞。地址傳遞的形參是同類型的指針,由於指針操作的不安全等問題,Java語言屏棄了指針,故Java語言方法之間的數據傳遞只有數值傳遞和引用傳遞。
1方法間的數值傳遞
所謂的數值傳遞又稱為值傳遞,數值傳遞的特徵是:調用方法的實參可以是常量、變數或者是表達式,形參則是對應數據類型的變數。如果實參是變數,則實參
和形參是相互獨立的兩個單元。在方法調用的過程中,實參的值將拷貝到形參中,此後形參的任何修改都不會影響實參。數值傳遞方法見例1。
[例1]數值傳遞調用方法舉例:
importjava.io.*;
public class ValueTransmit
{publicstatic void main(Stringargs[])
{intx=5,y=66;
System.out.println(「在主方法,交換前的:x=」+x+「,y=」+y);
swap(x,y);
System.out.println(「在主方法,交換後的:x=」+x+「,y=」+y);
}
static voidswap(int x,int y)
{int temp;
System.out.println(「在swap方法未交換時:x=」+x+「,y=」+y);
temp=x;x=y;y=temp;
System.out.println(「在swap方法交換之後:x=」+x+「,y=」+y);
}
}
例1程序的輸出結果如下所示:
在主方法, 交換前的:x=5,y=66
在swap方法未交換時:x=5,y=66
在swap方法交換之後:x=66,y=5
在主方法, 交換前的:x=5,y=66
在例1程序中,方法調用的「swap(x,y);」中的實在參數x,y是兩個單元,而形式參數中的x,y又是兩個單元,它們是互相獨立的。所以,對形式參數的改變並不影響實在參數的內容;程序的運行結果也驗證上述觀點。
2方法間的引用傳遞
方法之間的數據傳遞還有一種方法,就是引用傳遞。引用傳遞的實質就是將實在參數的地址傳遞給形式參數引用,也就是形式參數是實在參數的別名。
『叄』 java 參數傳遞問題
Java的參數傳遞總結:
JAVA的參數傳遞總是傳"值",但是傳值方式也分為兩種方式,它們是靠傳遞參數的類型區分的。這兩種類型分別為JAVA的基礎類型和Object(對象)類型;基礎類型包括boolean,byte,short,char,int,long,float,double,而Object就是對象,如數組.在參數為基礎類型時,見代碼:
public class A{
public static void main(String arg[]){
int a=3;
method1(a);
System.out.println(a);
}
public static void method1(int a){
a=4;
}
}
此時結果的輸出將是1,而且只要你的值在Main函數中沒變,a的值不管怎麼傳都不回變,這是因為a是傳值,而這個"值"是a的一個拷貝,a的值在傳遞後的改變只是改變了a的拷貝的內容,並沒有改變真正的a的值;對於參數為對象
public class A{ public class A{
public static void main(String arg[]){ public static void main(String arg[]){
int[] a=new int[1]; int[] a=new int[1];
a[0]=3; a[0]=3;
method1(a); method1(a);
System.out.println(a[0]); System.out.println(a[0]);
} }
public static void method1(int[] a){ public static void method1(int[] a){
a[0]--; a=new int[0];
} a[0]=4;
} }
}
左邊的結果將是2,右邊的結果將是3(未變),原因是:在傳遞的參數為對象時,這個傳遞的"值"中放的內容實際上是對向所在的地址,左邊的情況是指針定位到對象的地址後,在上面把內容給改了,所以數組的值後會改變,而右邊的情況為給對象新分配了一個指針到新的地址上面去,所以所有的操作都在新的地址上面,並不會影響原來的值。註:對於String,Interger,Boolean,Double等的系統對象,它們雖然是Object,但是任何方式的傳遞參數的值得改變並不會影響原來的值。
『肆』 java中參數傳遞是形參傳遞給實參的嗎和方法調用有什麼聯系謝謝各位
1.形參變數只有在被調用時才分配內存單元,在調用結束時, 即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。 函數調用結束返回主調函數後則不能再使用該形參變數。
2.實參可以是常量、變數、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。
3.實參和形參在數量上,類型上,順序上應嚴格一致, 否則會發生「類型不匹配」的錯誤。
4.函數調用中發生的數據傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。
5.當參數為基礎數據類型時:實參傳遞給形參的是值(包括String類型)形參在函數內值的變化不會影響實參
6.當參數為對象是:實參傳遞給形參的是堆棧地址,形參在函數內的修改會影響實參的修改