Rumah > Java > javaTutorial > Apakah Perintah Permulaan Tepat bagi Medan dan Pembina di Jawa?

Apakah Perintah Permulaan Tepat bagi Medan dan Pembina di Jawa?

Patricia Arquette
Lepaskan: 2024-12-14 18:22:17
asal
854 orang telah melayarinya

What's the Exact Initialization Order of Fields and Constructors in Java?

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:

  1. Pemula statik dan pembolehubah statik tidak terdapat dalam kod.
  2. Panggilan pembina Z() dilaksanakan, menggunakan pembina kelas super Z X( ) secara tersirat.
  3. Pembina kelas super X() dilaksanakan, mencetak "X" ke konsol.
  4. Pembolehubah instance y dalam kelas Z dimulakan, mencetak "Y" ke konsol.
  5. 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!

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