Pembolehubah Tidak Dimulakan dan Ahli di Java
Pembolehubah tidak diinisialisasi boleh menimbulkan cabaran yang ketara dalam pengaturcaraan. Di Java, perbezaan antara pembolehubah tempatan dan ahli kelas memperkenalkan ketidakkonsistenan yang boleh mengelirukan.
Ahli Instance
Pertimbangkan ahli "b" dalam "TestClass" contoh. Walaupun tidak pernah dimulakan secara eksplisit, ia lalai kepada "null" kerana jenis objeknya. Ini membolehkan "b.notify()" dilaksanakan tanpa ralat masa kompilasi. Walau bagaimanapun, pada masa jalanan, ia akan menghasilkan "NullPointerException."
Pembolehubah Setempat
Sebaliknya, pembolehubah tempatan "c" tidak dimulakan secara automatik. Percubaan untuk mengakses "c.notify()" mencetuskan ralat masa kompilasi, kerana pengkompil tidak dapat menjamin bahawa "c" akan dimulakan sebelum digunakan.
The Reasoning
Ketidakselarasan ini berpunca daripada spesifikasi bahasa itu sendiri. Pembolehubah contoh jenis objek ditakrifkan sebagai lalai kepada "null", manakala pembolehubah tempatan daripada jenis yang sama tidak. Pembezaan ini memastikan kebolehpercayaan pembolehubah setempat, menghalang gelagat yang tidak ditentukan yang mungkin timbul daripada mengakses ahli contoh yang tidak dimulakan.
Adalah penting untuk ambil perhatian bahawa niat untuk menjadikan ahli kelas "peribadi" dalam contoh yang disediakan adalah untuk menghalang akses langsung , bukan untuk menukar permulaan lalai. Oleh itu, soalan itu tetap sah walaupun dengan ahli persendirian.
Atas ialah kandungan terperinci Bila untuk Memulakan Pembolehubah Tempatan lwn. Ahli Kelas di Java untuk Pelaksanaan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!