Selalunya perlu menggunakan pembolehubah tambahan yang hanya akan digunakan dalam subrutin. Pembolehubah sedemikian dipanggil lokal (atau setempat) dan hanya boleh dimanipulasi dalam subrutin di mana ia dicipta.
Skop pembolehubah setempat ialah blok kurungan kerinting di mana ia diisytiharkan
Program utama dalam Java juga merupakan subrutin, jadi semua pembolehubah yang diisytiharkan di dalam
main()
ialah pembolehubah tempatan
Subrutin lain tidak "tahu" apa-apa tentang pembolehubah tempatan subrutin lain.
Oleh itu, adalah mungkin untuk mengehadkan skop (skop) pembolehubah hanya kepada subrutin di mana ia benar-benar diperlukan. Dalam pengaturcaraan, teknik ini dipanggil
enkapsulasi - menyembunyikan pembolehubah daripada diubah dari luar.
Jika perlu untuk mengisytiharkan pembolehubah yang boleh dilihat di mana-mana dalam program (dalam mana-mana subrutin), maka pembolehubah tersebut diisytiharkan di luar semua subrutin (lihat program 3 daripada jadual di bawah)
Pembolehubah sedemikian dipanggil
global.
Di Java, apabila program bermula, semua pembolehubah global ditetapkan secara automatik kepada sifar (pembolehubah boolean menjadi palsu)
Analisis tiga program:
1) Dalam atur cara ini, pembolehubah i ialah setempat. Pembolehubah tempatan diisytiharkan dalam subrutin |
2) Di sini, walaupun terdapat pembolehubah i dalam atur cara utama (dengan nilai 7), pembolehubah tempatan baharu i dengan nilai 5 akan dicipta.
Apabila anda menjalankan program ini, skrin akan memaparkan nilai 75 |
3) Program ini mempunyai pembolehubah global i. Nilainya boleh ditukar di dalam subrutin dan di dalam program utama
Prosedur ini akan berfungsi dengan pembolehubah global i dan ia akan diberikan nilai baharu bersamaan dengan 2. Nilai 2 | dipaparkan pada skrin
ujian kekosongan statik()
{
int i = 5;
System.out.println(i);
}
|
ujian kekosongan statik()
{
int i = 5;
System.out.println(i);
}
public static void main(String[] args) {
{
int i = 7;
System.out.println(i);
ujian();
}
|
kelas awam Utama {
int i;
ujian kekosongan statik()
{
i = 2;
}
public static void main(String[] args) {
{
ujian();
System.out.println(i);
}
|