konstanta
"Amigo, sampeyan ngerti yen ing Jawa ora kabeh variabel bisa diganti?"
"Piye, Kim? Pancen, tembung 'variabel' ngomongake owah-owahan."
"Ora ana sangsi babagan iki. Kaya akeh basa pamrograman liyane, Jawa nduweni konstanta , yaiku, variabel sing ora bisa diowahi nilai . Lan tembung 'konstan' ngomongake konsistensi."
"Lan kanggo apa?"
"Biasane, digunakake kanggo sawetara perkara dhasar kayata nomer Pi
utawa jumlah dina ing sasi ing taun. Sing jarene, ing prinsip, programmer bisa nggawe variabel apa wae dadi konstan, yen dheweke mutusake yen nindakake. dadi perlu."
"Maksudmu kaya jeneng, warna mobil, utawa jeneng dina minggu?"
"Sampeyan wis entuk gagasan sing bener. Apa wae sing ora kudu diganti."
"Lan kaya apa konstanta iki ing Jawa?"
"Jawa nduweni tembung kunci khusus kanggo wong-wong mau: final
. Nggawe variabel sing ora bisa diganti katon padha karo nggawe sing biasa. Bentenipun mung sadurunge jinis variabel sampeyan kudu nulis tembung final
, kaya iki:
final Type name = value;
"Apa sing kedadeyan yen sampeyan nggawe konstanta banjur nyoba nemtokake nilai sing beda?"
"Iki pitakonan sing tepat kanggo takon! Lan jawaban sing bener yaiku: yen sampeyan nyoba nemtokake nilai sing beda menyang variabel final
, program sampeyan ora bakal kompilasi."
"Apa yen sampeyan ngumumake final
variabel nanging ora menehi nilai?"
"Ora ana gunane nindakake iki, mula uga ora diidini ing Jawa. Variabel final
kudu diinisialisasi nalika diumumake, yaiku, sampeyan kudu menehi nilai. Ana siji pangecualian kanggo aturan iki: sampeyan bisa mindhah initialization saka variabel kelas statis dadi konstruktor. Nanging sampeyan bakal sinau babagan mengko.
"Sing jarene, ora kabeh sing final
konstan. Kanggo nyuda jumlah tembung kunci, pangembang Jawa nggunakake tembung kasebut final
luwih saka mung nyatakake konstanta. final
Bisa uga ditrapake kanggo metode lan malah kelas. Metode sing diumumake minangka final
ora bisa diganti, lan kelas. nyatakake yen final
ora bisa diwarisake."
"Eh... Ditimpa? Warisan? Saiki nganggo basa apa?"
"Basa pemrograman berorientasi obyek. Sampeyan bakal entuk banget. Nganti saiki, nikmati terminologi sing apik."
"Oke. Dadi, final
bisa dilebokake sadurunge variabel, kelas, lan metode, lan tembung kunci iki ndadekake ora bisa diganti ing sawetara pangertèn?"
"Ya. Salajengipun, final
modifier bisa ditambahake sadurunge variabel apa wae: variabel lokal, parameter metode, kolom kelas, lan variabel kelas statis.
"Iki sing penting kanggo elinga: final
sadurunge jeneng variabel mung pangayoman marang owah-owahan ing variabel kasebut . Yen variabel nyimpen referensi menyang obyek, obyek kasebut isih bisa diganti."
"Aku ora ngerti."
"Sampeyan bakal cepet ngerti. Iki contone:
|
Kita nggawe array. Iki ora diidini: variabel kasebut data diumumake minangka final . Nanging sampeyan bisa nindakake iki. Lan uga iki. |
"Get it. Sing angel."
konstanta global
"Apa sampeyan mikir konstanta global?"
"Aku guess konstanta global mbokmenawa kaya variabel global, mung konstanta?"
"Persis. Yen sampeyan kudu ngumumake konstanta global ing program sampeyan, nggawe variabel kelas statis , lan gawe public
lan final
. Ana gaya khusus kanggo jeneng variabel kasebut: ditulis nganggo huruf kapital kabeh, kanthi karakter garis ngisor sing digunakake kanggo tembung kapisah.
Tuladha:
class Solution
{
public static final String SOURCE_ROOT = "c:\\projects\\my\\";
public static final int DISPLAY_WIDTH = 1024;
public static final int DISPLAY_HEIGHT = 768;
}
Variabel bayangan
"Kaya sing dakkandhakake sadurunge, sampeyan ora bisa nggawe macem-macem variabel lokal kanthi jeneng sing padha ing siji metode. Ing cara sing beda, sampeyan bisa."
"Aku ngerti!"
"Nanging sing mbokmenawa sampeyan ora ngerti yaiku variabel ing kelas lan variabel lokal ing sawijining metode bisa uga duwe jeneng sing padha.
Tuladha:
Kode | visibilitas variabel |
---|---|
|
|
"Ing add
metode kasebut, kita ngumumake variabel lokal sing dijenengi sum
. Nganti pungkasan metode kasebut, dibayangake (utawa topeng ) sum
variabel conto."
"Hmm... Aku bakal ngomong ing sawetara pangertèn iki prilaku samesthine."
"Nanging iku dudu pungkasane crita. Pranyata yen variabel conto dibayangi dening variabel lokal, isih ana cara kanggo nyebut variabel conto ing metode kasebut. Kita nindakake iki kanthi nulis tembung kunci sadurunge jenenge this
. :
this.name
"Iki conto yen konflik jeneng kasil dirampungake:
Kode | visibilitas variabel |
---|---|
|
|
Variabel count
lan sum
kasedhiya ing endi wae kanthi utawa tanpa this
tembung kunci. Ing baris ngendi sum
variabel lokal bayangan variabel sum
conto, sum
variabel conto mung bisa diakses nggunakake this
tembung kunci.
"Temenan, aku kudu latihan iki."
"Sampeyan bakal ngatur."
"Apa yen variabel kelas statis dibayangke tinimbang mung variabel conto (non-statis)? Sampeyan ora bisa ngakses liwat this
?"
"Bener sampeyan. Tembung kunci iki ora bisa digunakake. Sampeyan kudu ngrujuk liwat jeneng kelas:
ClassName.name
Tuladha:
Kode | visibilitas variabel |
---|---|
|
|
"Padha manungsa waé: sampeyan bisa ngakses lan count
variabel sum
statis nang endi wae nganggo utawa tanpa nggunakake jeneng kelas Solution
minangka ater-ater. Ing baris ngendi sum
variabel lokal dipengini sum
variabel Kayata, akses menyang sum
variabel kelas bisa mung nalika nggunakake Solution
minangka ater-ater.
Variabel ing for
daur ulang
"Lan siji liyane cilik nanging menarik kasunyatan. Ana uga panggonan ngendi variabel diumumake kanthi cara khusus - Aku ngomong bab nang daur ulang for
. " Biasane, for
loop duwe counter
variabel ing kurung. Lan apa sing bakal dadi visibilitas variabel iki? Sawise kabeh, ora ana ing awak daur ulang. Apa iku kabeh cara? opo ora?"
"Aku wis krungu bab iki. Nalika aku ngerti, variabel sing diumumake ing header loop for
mung katon ing awak loop lan ing header loop for
. "
"Inggih, Amigo. Nanging isih, deleng conto kanggo nguatake materi iki:
Kode | visibilitas variabel |
---|---|
|
|
"Dadi sampeyan ngomong yen ing kode, aku bisa nulis sawetara puteran siji-sijine kanthi variabel counter kanthi jeneng sing padha, lan ora bakal ana masalah?"
"Ora ana masalah. Iki, delengen:
Kode | visibilitas variabel |
---|---|
|
|
GO TO FULL VERSION