Variabel lokal
"Salam, muridku tercinta! Sudah waktunya untuk sedikit lebih serius tentang variabel. Tapi kali ini kita tidak akan membahas struktur internal mereka. Sebagai gantinya, kita akan fokus pada bagaimana variabel berinteraksi dengan kode di mana mereka berada.
"Semua variabel yang dideklarasikan di dalam metode disebut variabel lokal . Variabel lokal hanya ada di blok kode yang dideklarasikan. Atau, lebih tepatnya, ada dari saat dideklarasikan hingga akhir blok kode di mana ia dideklarasikan."
"Jelas, saya butuh contoh."
"Tidak masalah. Ini dia:
Kode | Ketersediaan variabel |
---|---|
|
|
"Mari kita bahas aturan untuk mengakses variabel lokal sekali lagi. Ini blok kode. Apa yang menandai awal dan akhirnya?"
"Kurung kurawal?"
"Benar. Ini bisa berupa badan metode, badan loop, atau hanya blok kode untuk pernyataan bersyarat. Variabel yang dideklarasikan dalam blok kode ada hingga akhir blok kode itu. Katakan padaku, di mana akan variabel ada jika dideklarasikan dalam tubuh loop?"
"Itu hanya akan ada di badan loop."
"Betul. Terlebih lagi, itu akan dibuat dan dihancurkan pada setiap iterasi dari loop."
"Itu berarti bahwa Anda tidak dapat mendeklarasikan dua variabel lokal dengan nama yang sama dalam satu metode — program tidak dapat dikompilasi. Tetapi Anda dapat melakukan ini jika blok kode tempat variabel dideklarasikan tidak tumpang tindih. "
"Ada alasan kenapa kau jadi favoritku, Amigo. Ambil satu contoh lagi untuk memantapkan ini di otakmu.
Kode | Visibilitas variabel |
---|---|
|
|
"Kami dapat mendeklarasikan nama variabel lokal kedua b
hanya karena variabel pertama b
tidak terlihat di blok kode tempat b
variabel kedua dideklarasikan.
Parameter
"Seperti yang kami katakan sebelumnya, setiap metode dapat memiliki variabel yang kami sebut parameter. Bagaimana dengan visibilitas dan masa pakainya?"
"Hmm... aku bingung..."
"Semuanya cukup sederhana di sini. Parameter dibuat saat langkah-langkah eksekusi ke dalam metode (yaitu saat kode dari metode mulai dijalankan). Mereka dihilangkan saat metode berakhir."
"Dengan kata lain, mereka terlihat di seluruh tubuh metode dan hanya di sana?"
"Ya. Contoh:
Kode | Visibilitas variabel |
---|---|
|
|
"Seperti yang kami katakan sebelumnya, args
hanya variabel yang tipenya adalah array string. Dan seperti semua parameter, ini tersedia di mana saja di dalam tubuh metode. Yang mengatakan, kami biasanya mengabaikannya dalam contoh kami.
Variabel dalam sebuah kelas
"Ingat pelajaran di Level 1, di mana kita mengatakan bahwa kelas dapat memiliki metode dan variabel. Metode terkadang disebut metode instan, dan variabel — variabel instan atau bidang.
"Apa variabel (atau bidang) dari suatu kelas ?
Mereka adalah variabel yang dideklarasikan bukan dalam metode, tetapi dalam kelas."
"Dan untuk apa mereka di sana?"
"Sebagai permulaan, mereka dapat diakses dari metode kelas (non-statis) apa pun. Secara kasar, variabel instan adalah variabel yang digunakan bersama oleh semua metode kelas.
Contoh:
Kode | Visibilitas variabel |
---|---|
|
|
"Dalam contoh ini, kita memiliki dua metode — add()
dan remove()
. add()
Metode ini menambah variabel instan sum
dan count
, dan remove()
metode menurunkan variabel sum
dan count
. Kedua metode bekerja pada variabel instan bersama."
"Saya mengerti semuanya! Variabel lokal ada saat sebuah metode dieksekusi. Variabel instan dari sebuah kelas ada di dalam sebuah objek dari sebuah kelas selama objek itu ada."
"Bagus, Amigo. Kami telah meletakkan beberapa dasar, dan Anda akan mempelajari detail tentang objek kelas di tingkat berikutnya.
Variabel statis
"Seperti metode, variabel dalam kelas bisa statis atau non-statis. Metode statis hanya dapat mengakses variabel statis.
"Saya belum memiliki pemahaman yang jelas tentang variabel statis."
"Oh, aku tahu, tapi jangan khawatir. Untuk saat ini, biasakan saja dengan mereka. Kenali mereka. Di Level 11, kita akan menganalisis struktur variabel dan metode statis dan kamu akan memahami alasannya. pembatasan.
"Untuk membuat variabel statis (variabel kelas), Anda harus menulis static
kata kunci dalam deklarasinya.
"Variabel statis tidak terikat pada objek atau turunan dari kelas di mana mereka dideklarasikan. Sebaliknya, mereka milik kelas itu sendiri. Itu sebabnya mereka ada bahkan jika tidak ada satu pun objek dari kelas yang telah dibuat . Anda dapat merujuk ke mereka dari kelas lain menggunakan konstruk seperti:
ClassName.variableName
Contoh:
Kode | Visibilitas variabel |
---|---|
|
|
"Dalam contoh di atas, kami membuat Storage
kelas terpisah, memindahkan variabel count
and sum
ke dalamnya, dan mendeklarasikannya static . Variabel statis publik dapat diakses dari metode apa pun dalam program (dan tidak hanya dari metode)."
"Aku tidak sepenuhnya mengerti, tapi ini sepertinya nyaman bagiku."
"Begitulah. Dan terkadang itu perlu. Tanpa variabel dan metode statis kita akan mandek."
"Mudah-mudahan, aku perlahan bisa mengetahuinya."
"Ya, tentu saja."