Tertib Permulaan Medan dan Kod Pembina dalam Java
Dalam program Java, susunan permulaan medan dan pelaksanaan kod pembina boleh mengelirukan, terutamanya mengenai keutamaan antara keduanya. Walau bagaimanapun, Spesifikasi Mesin Maya Java menggariskan urutan peristiwa yang jelas yang menentukan susunan yang betul:
-
Pembolehubah dan Blok Statik: Pertama, pembolehubah statik dan blok permulaan statik dimulakan dalam susunan teks, dengan syarat kelas mereka tidak dimulakan sebelum ini.
-
Super Constructor Invocation: Seterusnya, panggilan super() dilaksanakan dalam pembina, sama ada secara eksplisit atau tersirat. Panggilan ini memanggil pembina kelas induk.
-
Permulaan Medan dan Sekatan: Berikutan panggilan super(), pembolehubah ins dimulakan dalam susunan teks, bersama-sama dengan mana-mana blok permulaan tika yang berkaitan.
-
Badan Pembina: Akhir sekali, baki badan pembina dilaksanakan selepas panggilan super() selesai.
Dalam coretan kod yang disediakan, output "YZXZ" dijana kerana susunan permulaan yang ditentukan. Mari kita pecahkan langkah demi langkah:
- Pemula statik dan pembolehubah statik tidak terdapat dalam kod.
- Panggilan pembina Z() dilaksanakan, menggunakan pembina kelas super Z X( ) secara tersirat.
- Pembina kelas super X() dilaksanakan, mencetak "X" ke konsol.
- Pembolehubah instance y dalam kelas Z dimulakan, mencetak "Y" ke konsol.
- Pembolehubah instance b dalam kelas X dimulakan, mencetak "Z" ke konsol (kerana Z ialah subkelas semasa).
Oleh itu, output "YZXZ" betul mencerminkan susunan pemulaan dan pelaksanaan yang ditakrifkan oleh Spesifikasi Mesin Maya Java.
Atas ialah kandungan terperinci Apakah Perintah Permulaan Tepat bagi Medan dan Pembina di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!