Video: Java Full Course | Java Tutorial for Beginners | Java Online Training | Edureka 2024
Pemaju Java sering mengalami masalah memikirkan mengapa aplikasi tidak berfungsi ketika menghadapi masalah akses blok. Garis panduan asas adalah bahawa mana-mana pemboleh ubah yang anda buat dalam satu blok ditakrifkan hanya dalam blok tersebut. Contohnya, apabila anda melihat kod berikut, anda melihat senario akses blok biasa.
// Buat pembolehubah di dalam blok. untuk (int i = 0; i <10; i ++) // Paparkan nilai pemboleh ubah itu. Sistem. keluar. cetak ("Nilai i adalah:" + i); // Akses di luar blok tidak berfungsi. Sistem. keluar. cetak ("Nilai i adalah:" + i);
Contohnya memaparkan nilai i dalam gelung untuk (jenis blok) tanpa masalah. Bagaimanapun, cuba untuk mengakses saya di luar blok tidak dapat diterima kerana pemboleh ubah tidak ditakrifkan. Pengkompil akan menangkap ralat ini.
Satu lagi masalah potensi berlaku apabila pembolehubah ditakrifkan dalam aplikasi dan juga dalam satu blok. Oleh kerana keadaan ini mungkin menimbulkan masalah, versi Java yang lebih baru tidak akan membenarkan jenis kod yang ditunjukkan di sini:
statik void utama awam (String [] args) {// Tentukan pembolehubah. int i = 0; // Buat pemboleh ubah di dalam blok. untuk (int i = 0; i <10; i ++) // Paparkan nilai pemboleh ubah itu. Sistem. keluar. cetak ("Nilai i adalah:" + i); // Akses di luar blok tidak berfungsi. Sistem. keluar. cetak ("Nilai i adalah:" + i);}
Pengkompil tidak akan selalu menghalang anda daripada menembak diri anda di kaki. Dalam banyak situasi, pemaju melakukan sesuatu dengan pemboleh ubah dan tidak memahami akibatnya. Contohnya, kod berikut betul-betul sah di Jawa.
static void utama utama (String [] args) {// Tentukan pembolehubah. int i = 0; // Buat pemboleh ubah di dalam blok. untuk (i = 0; i <10; i ++) // Paparkan nilai pemboleh ubah tersebut. Sistem. keluar. cetak ("Nilai i adalah:" + i); // Akses di luar blok tidak berfungsi. Sistem. keluar. println ("Nilai i ialah:" + i);}
Gelung untuk memaparkan nilai 0 hingga 9 kerana keadaan dalam deklarasi gelung. Panggilan terakhir kepada Sistem. keluar. println () memaparkan nilai 10, bukan 0 atau 9 kerana sesetengah pemaju mungkin mengharapkan.
Bahagian i ++ dari perisytiharan itu berlaku, dan kemudian keadaan itu dinilai, maka nilai akhir i adalah 10, bukan 9 kerana ia harus 10 supaya keadaan menjadi palsu.
Intinya ialah anda harus mempertimbangkan bagaimana blok berfungsi dengan pemboleh ubah untuk menentukan sama ada anda boleh mengakses pembolehubah dan apa nilai akan mengandungi pada saat keluar dari blok.