首頁 > Java > java教程 > Java 的陣列賦值語法在聲明內部和外部有何不同?

Java 的陣列賦值語法在聲明內部和外部有何不同?

Barbara Streisand
發布: 2024-12-30 03:10:13
原創
216 人瀏覽過

How Does Java's Array Assignment Syntax Differ Inside and Outside of Declarations?

聲明之外的陣列賦值語法

Java 的陣列初始化語法根據是在聲明中使用還是在賦值中使用而有所不同。

使用陣列進行初始化文字

宣告陣列時,可以使用陣列文字初始化其元素:

AClass[] array = {object1, object2};
登入後複製

使用new 運算子初始化

在聲明之外,可以使用new運算子初始化數組,後跟元素計數和後續賦值:

AClass[] array = new AClass[2];
array[0] = object1;
array[1] = object2;
登入後複製

語法限制:將數組文字分配給未聲明的數組

但是,嘗試將數組文字分配給未聲明的陣列變數是被禁止的:

AClass[] array;
...
array = {object1, object2}; // Blocked by Java
登入後複製

Java 施加此限制的原因可能不會立即顯而易見。

解決方法:將new 運算子與陣列文字結合使用

作為解決方法,可以使用以下語法使用:

AClass[] array;
...
array = new AClass[]{object1, object2};
登入後複製

此方法將陣列建立和初始化合併到一條語句中,同時遵守Java 的語法規則。

範例

例如,考慮以下程式碼snippet:

public void selectedPointsToMove(cpVect coord) {

    if (tab == null) {
        if (arePointsClose(coord, point1, 10)) {
            cpVect[] tempTab = {point1};
            tab = tempTab;
        } else if (arePointsClose(point2, coord, 10)) {
            cpVect[] tempTab = {point2};
            tab = tempTab;
        } else {
            cpVect[] tempTab = {point1,point2};
            tab = tempTab;
        }
    }
}
登入後複製

如果沒有解決方法,程式碼將需要額外的語句來初始化tempTab,然後再分配它到選項卡。

以上是Java 的陣列賦值語法在聲明內部和外部有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板