Rumah > Java > javaTutorial > Apakah Perintah Pelaksanaan yang Betul bagi Permulaan Pembolehubah Contoh dan Pelaksanaan Pembina di Jawa?

Apakah Perintah Pelaksanaan yang Betul bagi Permulaan Pembolehubah Contoh dan Pelaksanaan Pembina di Jawa?

Linda Hamilton
Lepaskan: 2024-12-29 05:47:10
asal
610 orang telah melayarinya

What's the Correct Execution Order of Instance Variable Initialization and Constructor Execution in Java?

Permulaan Pembolehubah Instance lwn. Pelaksanaan Pembina dalam Java

Satu tanggapan salah umum tentang pemulaan objek Java ialah tertib di mana medan dan pembina dilaksanakan . Mari kita jelaskan konsep ini dengan contoh.

Dalam coretan kod yang diberikan:

class X {
    Y b = new Y();

    X() {
        System.out.print("X");
    }
}

class Y {
    Y() {
        System.out.print("Y");
    }
}

public class Z extends X {
    Y y = new Y();

    Z() {
        System.out.print("Z");
    }

    public static void main(String[] args) {
        new Z();
    }
}
Salin selepas log masuk

Bertentangan dengan andaian bahawa medan dimulakan sebelum pembina, output program ini ialah "YZX". Untuk memahami sebabnya, kita perlu menyelidiki proses pemula Java.

Tertib Permulaan:

Java memulakan kelas dalam urutan tertentu:

  1. Ahli Statik: Pembolehubah statik dan pemula dalam teks pesanan.
  2. Invokasi Pembina: Panggilan super constructor, sama ada eksplisit atau tersirat.
  3. Blok Pembolehubah Instance dan Initializer: Medan dan blok permulaan instance dalam susunan teks.
  4. Pembina Badan: Baki kod dalam pembina selepas panggilan super().

Dalam contoh di atas, urutan peristiwa ialah:

  • Pembina Y dipanggil (Y).
  • Pembina Z memanggil pembina X (YZ).
  • Pembina X dipanggil (XYZ).
  • Pembolehubah tika X dimulakan (YZXb).
  • Pembolehubah tika Z y dimulakan (YZXby).

Oleh itu, susunan pelaksanaan yang betul ialah "YZX". Ini menyerlahkan kepentingan memahami susunan permulaan Java untuk mengelakkan tingkah laku yang tidak dijangka dalam pembinaan objek.

Atas ialah kandungan terperinci Apakah Perintah Pelaksanaan yang Betul bagi Permulaan Pembolehubah Contoh dan Pelaksanaan 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