0Pricing
Java Academy · Pelajaran

Lingkup dan Masa Berlaku

Pahami di mana variabel terlihat (lingkup) dan berapa lama variabel ada (masa berlaku): blok, perulangan, metode, bidang, penyembunyian nama, dan parameter final.

Lingkup dan Masa Berlaku adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 3 pelajaran total.

Cakupan vs Masa Hidup

Cakupan = tempat sebuah nama (variabel) dapat dilihat. Masa hidup = berapa lama variabel tersebut ada. Anda akan melihat cakupan blok, cakupan perulangan, variabel lokal metode, atribut kelas, dan aturan penyembunyian nama.

Cakupan Blok

Cakupan blok: variabel yang dideklarasikan di dalam kurung kurawal hanya dapat dilihat di dalam kurung kurawal tersebut.

public class Main {
  public static void main(String[] args) {
    int a = 10; // visible in main
    {
      int b = 20; // visible only inside this block
      System.out.println("inside block: a=" + a + ", b=" + b);
    }
    System.out.println("outside block: a=" + a);
    // System.out.println(b); // would NOT compile: b is out of scope
  }
}

Cakupan Perulangan

Cakupan perulangan: indeks perulangan yang dideklarasikan di header for hanya dapat dilihat di dalam tubuh perulangan.

public class Main {
  public static void main(String[] args) {
    for (int i = 0; i < 3; i = i + 1) {
      System.out.println("i in loop = " + i);
    }
    // System.out.println(i); // would NOT compile: i is scoped to the loop

    int j;
    for (j = 0; j < 2; j = j + 1) {
      System.out.println("j in loop = " + j);
    }
    System.out.println("j after loop = " + j); // OK: j declared outside
  }
}

Atribut vs Lokal

Masa hidup: atribut kelas/statis tetap ada di antara pemanggilan; variabel lokal dibuat ulang pada setiap pemanggilan, lalu dibuang ketika metode berakhir.

public class Main {
  // static field (class-level): lives for the program lifetime
  static int counter = 0;

  static void tick() {
    int local = 100; // local: created each call, dies when method returns
    counter = counter + 1;
    System.out.println("tick: counter=" + counter + ", local=" + local);
  }

  public static void main(String[] args) {
    tick();
    tick();
    tick();
    System.out.println("final counter=" + counter);
  }
}

Penyembunyian Nama

Penyembunyian nama: deklarasi di dalam (misalnya, parameter atau variabel lokal) dapat menyembunyikan nama di luar dengan pengenal yang sama. Gunakan ClassName.field (atau this.field dalam metode instans) untuk mengakses atribut yang tersembunyi.

public class Main {
  static String label = "FIELD"; // class field

  static void demo(String label) { // parameter shadows field name
    System.out.println("param label = " + label); // uses parameter
    {
      String labelInner = "INNER"; // new name in inner block
      System.out.println("inner block labelInner = " + labelInner);
      System.out.println("still param label = " + label);
    }
    System.out.println("field via class name = " + Main.label); // refer to field explicitly
  }

  public static void main(String[] args) {
    demo("PARAM");
  }
}

Final & Penerusan Berdasarkan Nilai

Parameter final tidak dapat ditetapkan ulang. Java meneruskan nilai: menetapkan ulang parameter tidak mengubah variabel milik pemanggil.

public class Main {
  // final parameter cannot be reassigned inside the method
  static int inc(final int n) {
    // n = n + 1; // would NOT compile if uncommented
    return n + 1; // safe: return a new value
  }

  static void reassign(int x) {
    x = 999; // reassignes the local copy; caller variable is unchanged
  }

  public static void main(String[] args) {
    int a = 5;
    int b = inc(a);
    System.out.println("a=" + a + ", b=inc(a)=" + b);

    reassign(a);
    System.out.println("after reassign(a): a is still " + a);
  }
}

Pemeriksaan Cakupan/Masa Hidup

Pemeriksaan singkat: Pernyataan manakah tentang cakupan/masa hidup yang TRUE?

Ringkasan & Berikutnya

Ringkasan: Anda berlatih menggunakan cakupan blok dan perulangan, atribut vs variabel lokal, penyembunyian nama, serta parameter final. Berikutnya: lanjutkan ke pola desain dan penggunaan kembali di A2.2.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Lingkup dan Masa Berlaku” gratis?

Ya — teks lengkap “Lingkup dan Masa Berlaku” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Lingkup dan Masa Berlaku”?

Pahami di mana variabel terlihat (lingkup) dan berapa lama variabel ada (masa berlaku): blok, perulangan, metode, bidang, penyembunyian nama, dan parameter final. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Java Academy?

Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 3.

Berapa lama pelajaran “Lingkup dan Masa Berlaku” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mendefinisikan Metode dan Parameter
  2. Nilai Kembalian dan Pemuatan Berlebih
  3. Lingkup dan Masa Berlaku
← Kembali ke Java Academy