更新時間:2019-09-18 14:02:10 來源:動力節點 瀏覽4053次
今天動力節點java培訓機構小編為大家介紹 JAVA基本數據類型和引用數據類型的參數傳遞,希望通過此文大家能夠熟悉JAVA基本數據類型和引用數據類型的參數傳遞,下面就隨小編一起來了解一下JAVA基本數據類型和引用數據類型的參數傳遞。
1、java基本數據類型的參數傳值
對于java基本數據類型,修改這個值并不會影響作為參數傳進來的那個變量,因為修改的是方法的局部變量,是一個副本。實參的精度級別應等于或低于形參的精度級別,否則報錯。
class JB{
void f(int x, int y){
x=x+1;
y=y+1;
System.out.printf("參數x和y的值分別是:%d, %d\n", x, y);
}
}
public class CS {
public static void main(String[] arg){
int x=10;
int y=12;
JB jb=new JB();
jb.f(x, y);
System.out.printf("main方法中x和y的值分別是:%d, %d\n", x, y);
}
}
結果:
參數x和y的值分別是:11, 13
main方法中x和y的值分別是:10, 12
2、java引用數據類型的參數傳值
java引用數據類型包括類、數組以及后面將要學習的接口。當形參是引用類型時,實參傳給形參的值是對象的引用。如果修改形參引用的對象,那么實參引用的對象也會發生同樣的變化。因為實參的引用拷貝給了形參,所以實參和形參引用同一個對象,對形參引用對象的修改就相當于對實參引用對象的修改。
如果修改的不是形參引用的對象而是形參值本身,也就是讓形參指向其它對象,則實參值和實參引用的對象都不改變。
class A{
int N;
A(int n){
N = n;
}
void setN(int n){
N = n;
}
int getN(){
return N;
}
}
class A2 extends A{
A2(int n) {
super(n);
}
}
class B{
void f(A a){
a.setN(12);
// a = new A2(111);
System.out.println("在執行方法f時, 形參a修改了自己的N值");
System.out.println("當前形參mouse的N值: " + a.getN());
}
}
main
B b = new B();
A a = new A(2);
System.out.println("在調用方法f之前,實參a的N值: "+ a.getN());
b.f(a);
System.out.println("在調用方法f之后, 實參a的N值: " + a.getN());
結果:
在調用方法f之前,實參a的N值: 2
在執行方法f時, 形參a修改了自己的N值
當前形參a的N值: 12
在調用方法f之后, 實參a的N值: 12
注意:形參指向其它對象這句話的理解,a = new A2(111);讓mouse又指向了另一個對象,所以他所修改后的值和實參沒有關系,實參的值和引用都不會改變。在代碼中新加入的A2就是繼承了A,通過方法傳入的是A(a)的對象的引用,把a = new A2(111);那么之后改變是A2的內容,和A就無關了,所以A(實參)的引用對象和值都不變。
結果:
在執行方法f時, 形參a修改了自己的N值
當前形參a的N值: 111
在調用方法f之后, 實參a的N值: 2
以上就是動力節點java培訓機構小編為大家介紹的“JAVA基本數據類型和引用數據類型的參數傳遞”的內容,希望對大家有幫助,更多java最新資訊請繼續關注動力節點java培訓機構官網,每天會有精彩內容分享與你。
相關免費視頻教程推薦——java初級視頻入門教程下載
java引用數據類型參數傳遞:http://www.ilovecolors.com.cn/xiazai/2621.html
java基本數據類型參數傳遞:http://www.ilovecolors.com.cn/xiazai/2623.html
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習