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
- Mendefinisikan Metode dan Parameter
- Nilai Kembalian dan Pemuatan Berlebih
- Lingkup dan Masa Berlaku