亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

java語言

java語言參數(shù)傳遞介紹

時間:2024-06-12 17:51:19 java語言 我要投稿
  • 相關(guān)推薦

java語言參數(shù)傳遞介紹

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

  1.按值傳遞(by value)

  適用范圍:8種基本數(shù)據(jù)類型、String對象

  特點:在內(nèi)存中復制一份數(shù)據(jù),把復制后的數(shù)據(jù)傳遞到方法內(nèi)部

  作用:在方法內(nèi)部改變參數(shù)的值,外部數(shù)據(jù)不會跟著發(fā)生改變

  2.按址傳遞(by address)

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

  特點:將對象的地址傳遞到方法內(nèi)部

  作用:在方法內(nèi)部修改對象的內(nèi)容,外部數(shù)據(jù)也會跟著發(fā)生改變

  基礎示例代碼:

  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]);

  }

  }

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

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

  1.對于按值傳遞的參數(shù),如果需要在方法調(diào)用以后修改參數(shù)的值,可以利用返回值來實現(xiàn);對于按值傳遞的參數(shù),如果需要在方法內(nèi)部修改時原來的參數(shù)不改變,則可以在方法內(nèi)部重新創(chuàng)建該對象實現(xiàn)。

  示例代碼

  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){

  //創(chuàng)建新的數(shù)組并賦值

  int newArray = new int[array.length];

  //數(shù)據(jù)拷貝

  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]);

  }

  }

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

  在實際的程序開發(fā)中,可以根據(jù)需要使用類似的結(jié)構(gòu)來進行實現(xiàn)。

  下面再介紹一個參數(shù)傳遞的常見應用,利用參數(shù)傳遞實現(xiàn)返回值,這樣的功能在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方法內(nèi)部修改了數(shù)組的值以后,外部數(shù)組a的值也會發(fā)生改變,間接實現(xiàn)了返回值的效果。當然,在該示例代碼中,因為只返回一個參數(shù),所以作用體現(xiàn)的不明顯,如果需要返回多個參數(shù)時,使用按址傳遞是一種不錯的主意。

【java語言參數(shù)傳遞介紹】相關(guān)文章:

C語言函數(shù)參數(shù)傳遞問題03-22

JAVA語言的介紹及發(fā)展03-22

Java語言的優(yōu)點介紹03-30

Java語言的優(yōu)點12-05

Java語言的歷史12-03

網(wǎng)頁開發(fā)中JavaScript傳遞參數(shù)方法比較12-09

C語言的可變參數(shù)問題03-20

Java語言的基本特點03-29

Java語言基本概述03-29