簡體   English   中英

返回對數組的引用是什么意思?

[英]What does it mean to return a reference to an array?

我在數組上做一些練習,在逐元素復制數組后,系統提示我返回對數組的引用。 這到底是什么意思?

我的代碼如下:

 public static int[] cloneArray(int array[])
  {
    int[] arraycopy = new int[array.length];
    for(int i = 0; i < array.length; i++)
    {
      arraycopy[i] = array[i];
    }
    return arraycopy;
  }

我不知道我應該返回什么作為“引用”:我應該返回一個整數數組還是一個整數? 每當我嘗試打印數組時,都會得到字符和數字的奇怪組合(除非我調用Arrays.toString())。

“返回對數組的引用”僅表示“返回數組”。

Java僅返回 ,該可以是基元或對象引用 (即,對於對象,該reference )。

盡管Java是基於C的,但它本身並不像C那樣帶有指針等。

在Java中,數組和對象的行為不像基本類型(如int)。 考慮以下代碼:

public class MyClass {
  public static int method1(int ar[]) {
    int x = ar[1];
    ar[1] = 3;
    return x;
  }
}

現在假設在其他地方,執行以下代碼:

int abcd[] = new int[3];
abcd[0] = 0;
abcd[1] = 1;
abcd[2] = 2;
int d = MyClass.method1(abcd);
System.out.println(abcd[1]);

將打印什么? 它不是1,而是3。這是因為沒有向該方法提供數組中的數據,而是告知了該方法數組的位置。 換句話說,它已通過引用 因為它使用的是引用,所以更改數組索引的值會在調用它的代碼中更改其值。 如果method1將int作為參數,則不會發生這種情況。

基本上,在Java中,方法不接受數組作為參數或返回數組。 他們僅使用對數組的引用。 對象也一樣(字符串按值傳遞除外)。

在Java中,只能通過引用訪問對象。 只需返回Array對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM