日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java方法的参数传递规则_java语言参数传递介绍

發布時間:2024/7/23 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java方法的参数传递规则_java语言参数传递介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java語言參數傳遞介紹

Java不只是一種編程語言,它是一個完整的平臺,擁有龐大的庫,將諸如圖形繪制、Socket連接、數據庫存取等復雜操作進行了最大程度的簡化。下面是小編分享的java語言參數傳遞介紹,一起來看一下吧。

1.按值傳遞(by value)

適用范圍:8種基本數據類型、String對象

特點:在內存中復制一份數據,把復制后的數據傳遞到方法內部

作用:在方法內部改變參數的值,外部數據不會跟著發生改變

2.按址傳遞(by address)

適用范圍:數組、除String以外的其他所有類型的對象

特點:將對象的地址傳遞到方法內部

作用:在方法內部修改對象的內容,外部數據也會跟著發生改變

基礎示例代碼:

public class Test1{

public static void t1(int n){

n = 10;

}

public static void t2(String s){

s = "123";

}

public static void t3(int array){

array[0] = 2;

}

public static void main(String args){

int m = 5;

1(m);

System.out.println(m);

String s1 = "abc";

t2(s1);

System.out.println(s1);

int arr = {1,2,3,4};

t3(arr);

System.out.println(arr[0]);

}

}

按照上面的參數傳遞規則,該代碼的輸出結果應該是:5 abc 2.因為int類型是按值傳遞,所以把參數m傳遞到方法t1時,相當于又復制了一份m的值,在方法t1內部修改的是復制后的值,所以m的值不變,s1的輸出和m類似。而arr是數組,屬于按址傳遞,也就是把arr的地址傳遞到了方法t3內部,在方法t3內部修改數組中的值時,原來的內容也發生改變。|||

以上特性是Java語言中的規定,在語法上無法指定參數傳遞是按值傳遞還是按址傳遞,但是可以通過下面的變換實現:

1.對于按值傳遞的參數,如果需要在方法調用以后修改參數的值,可以利用返回值來實現;對于按值傳遞的參數,如果需要在方法內部修改時原來的參數不改變,則可以在方法內部重新創建該對象實現。

示例代碼

public class Test2{

public static int t1(int n){

n = 10;

return n;

}

public static String t2(String s){

s = "123";

return s;

}

public static void t3(int array){

//創建新的數組并賦值

int newArray = new int[array.length];

//數據拷貝

System.arraycopy(array,0,newArray,0,array.length);

newArray[0] = 2;

}

public static void main(String args){

int m = 5;

//重新賦值

m = t1(m);

System.out.println(m);

String s1 = "abc";

//重新賦值

s1 = t2(s1);

System.out.println(s1);

int arr = {1,2,3,4};

t3(arr);

System.out.println(arr[0]);

}

}

這樣,程序的輸出結果就將是:10 123 1.

在實際的程序開發中,可以根據需要使用類似的.結構來進行實現。

下面再介紹一個參數傳遞的常見應用,利用參數傳遞實現返回值,這樣的功能在IO類設計的read方法中大量使用。

示例代碼

public class Test3{

public static void initArray(int array){

for(int i = 0;i < array.length;i++){

array[i] = i;

}

}

public static void main(String args){

int a = new int[10];

initArray(a);

for(int i = 0;i < a.length;i++){

System.out.println(a[i]);

}

}

}

在該示例代碼中,在initArray方法內部修改了數組的值以后,外部數組a的值也會發生改變,間接實現了返回值的效果。當然,在該示例代碼中,因為只返回一個參數,所以作用體現的不明顯,如果需要返回多個參數時,使用按址傳遞是一種不錯的主意。

【java語言參數傳遞介紹】相關文章:

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java方法的参数传递规则_java语言参数传递介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。