Rumah > Java > javaTutorial > Bagaimanakah Sintaks Tugasan Array Java Berbeza Di Dalam dan Di Luar Pengisytiharan?

Bagaimanakah Sintaks Tugasan Array Java Berbeza Di Dalam dan Di Luar Pengisytiharan?

Barbara Streisand
Lepaskan: 2024-12-30 03:10:13
asal
215 orang telah melayarinya

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

Sintaks Tugasan Tatasusunan Di Luar Pengisytiharan

Sintaks permulaan tatasusunan Java berbeza bergantung pada sama ada ia digunakan dalam pengisytiharan atau tugasan.

Memulakan dengan Tatasusunan Literals

Apabila mengisytiharkan tatasusunan, tatasusunan literals boleh digunakan untuk memulakan elemennya:

AClass[] array = {object1, object2};
Salin selepas log masuk

Memulakan dengan Operator baharu

Di luar pengisytiharan, tatasusunan boleh dimulakan menggunakan operator baharu, diikuti dengan kiraan elemen dan tugasan seterusnya :

AClass[] array = new AClass[2];
array[0] = object1;
array[1] = object2;
Salin selepas log masuk

Sekatan Sintaks: Menetapkan Huruf Array kepada Tidak Diisytiharkan Tatasusunan

Walau bagaimanapun, percubaan untuk menetapkan tatasusunan literal kepada pembolehubah tatasusunan yang tidak diisytiharkan adalah dilarang:

AClass[] array;
...
array = {object1, object2}; // Blocked by Java
Salin selepas log masuk

Sekatan ini dikenakan oleh Java atas sebab yang mungkin tidak dapat dilihat dengan serta-merta.

Penyelesaian: Menggunakan Operator baharu dengan Array Literal

Sebagai penyelesaian, sintaks berikut boleh digunakan:

AClass[] array;
...
array = new AClass[]{object1, object2};
Salin selepas log masuk

Pendekatan ini menggabungkan penciptaan tatasusunan dan permulaan ke dalam satu pernyataan sambil mematuhi peraturan sintaks Java.

Contoh

Sebagai contoh, pertimbangkan coretan kod berikut:

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;
        }
    }
}
Salin selepas log masuk

Tanpa penyelesaian, kod memerlukan penyataan tambahan untuk memulakan tempTab sebelum menetapkannya pada tab.

Atas ialah kandungan terperinci Bagaimanakah Sintaks Tugasan Array Java Berbeza Di Dalam dan Di Luar Pengisytiharan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan