Pembolehubah tempatan
"Salam, pelajar yang dikasihi! Sudah tiba masanya untuk menjadi lebih serius sedikit tentang pembolehubah. Tetapi kali ini kita tidak akan membincangkan struktur dalaman mereka. Sebaliknya, kita akan memberi tumpuan kepada bagaimana pembolehubah berinteraksi dengan kod di mana ia berada.
"Semua pembolehubah yang diisytiharkan di dalam kaedah dipanggil pembolehubah tempatan . Pembolehubah tempatan hanya wujud dalam blok kod di mana ia diisytiharkan. Atau, lebih tepat, ia wujud dari saat ia diisytiharkan sehingga akhir blok kod di mana ia diisytiharkan."
"Jelas sekali, saya perlukan contoh."
"Tiada masalah. Ini dia:
Kod | Ketersediaan pembolehubah |
---|---|
|
|
"Mari kita semak peraturan untuk mengakses pembolehubah tempatan sekali lagi. Berikut ialah blok kod. Apakah yang menandakan permulaan dan penghujungnya?"
"Kurung kurung kerinting?"
"Betul. Ini boleh menjadi badan kaedah, badan gelung atau hanya blok kod untuk pernyataan bersyarat. Pembolehubah yang diisytiharkan dalam blok kod wujud sehingga penghujung blok kod itu. Beritahu saya, di mana akan pembolehubah wujud jika ia diisytiharkan dalam badan gelung?"
"Ia akan wujud hanya dalam badan gelung."
"Betul. Apatah lagi, ia akan dicipta dan dimusnahkan pada setiap lelaran gelung."
"Ini bermakna anda tidak boleh mengisytiharkan dua pembolehubah tempatan dengan nama yang sama dalam satu kaedah — program tidak akan disusun. Tetapi anda boleh melakukan ini jika blok kod di mana pembolehubah diisytiharkan tidak bertindih . "
"Ada sebab mengapa awak menjadi kegemaran saya, Amigo. Ambil satu contoh lagi untuk mengukuhkan ini dalam otak awak.
Kod | Keterlihatan berubah-ubah |
---|---|
|
|
"Kami dapat mengisytiharkan pembolehubah tempatan kedua yang dinamakan b
hanya kerana pembolehubah pertama b
tidak kelihatan dalam blok kod di mana b
pembolehubah kedua diisytiharkan.
Parameter
"Seperti yang kami katakan sebelum ini, setiap kaedah boleh mempunyai pembolehubah yang kami panggil parameter. Bagaimana pula dengan keterlihatan dan hayatnya?"
"Hmm... saya buntu..."
"Semuanya agak mudah di sini. Parameter dicipta apabila pelaksanaan melangkah ke dalam kaedah (iaitu apabila kod kaedah mula dilaksanakan). Parameter akan dihapuskan apabila kaedah tamat."
"Dalam erti kata lain, mereka boleh dilihat di seluruh badan kaedah dan hanya di sana?"
"Ya. Contoh:
Kod | Keterlihatan berubah-ubah |
---|---|
|
|
"Seperti yang kami katakan sebelum ini, args
hanyalah pembolehubah yang jenisnya ialah tatasusunan rentetan. Dan seperti semua parameter, ia boleh didapati di mana-mana dalam badan kaedah. Yang berkata, kami biasanya mengabaikannya dalam contoh kami.
Pembolehubah dalam kelas
"Ingat pelajaran dalam Tahap 1, di mana kami berkata bahawa kelas boleh mempunyai kaedah dan pembolehubah. Kaedah kadangkala dipanggil kaedah contoh, dan pembolehubah — pembolehubah atau medan contoh.
"Apakah pembolehubah (atau medan) kelas ?
Ia adalah pembolehubah yang diisytiharkan bukan dalam kaedah, tetapi dalam kelas."
"Dan untuk apa mereka di sana?"
"Sebagai permulaan, mereka boleh diakses daripada mana-mana kaedah (bukan statik) kelas. Secara kasarnya, pembolehubah contoh ialah pembolehubah yang dikongsi oleh semua kaedah kelas.
Contoh:
Kod | Keterlihatan berubah-ubah |
---|---|
|
|
"Dalam contoh ini, kami mempunyai dua kaedah — add()
dan remove()
. add()
Kaedah menambah pembolehubah sum
dan count
contoh, dan remove()
kaedah mengurangkan pembolehubah sum
dan count
. Kedua-dua kaedah berfungsi pada pembolehubah contoh yang dikongsi."
"Saya faham semuanya! Pembolehubah tempatan wujud semasa kaedah sedang dilaksanakan. Pembolehubah contoh kelas wujud dalam objek kelas selagi objek itu wujud. "
"Syabas, Amigo. Kami telah meletakkan beberapa asas, dan anda akan mempelajari butiran tentang objek kelas di peringkat seterusnya.
Pembolehubah statik
"Seperti kaedah, pembolehubah dalam kelas boleh menjadi statik atau tidak statik. Kaedah statik hanya boleh mengakses pembolehubah statik.
"Saya belum mempunyai pemahaman yang jelas tentang pembolehubah statik."
"Oh, saya tahu, tetapi jangan risau. Buat masa ini, cukup selesa dengan mereka. Biasakan diri dengan mereka. Dalam Tahap 11, kami akan menganalisis struktur pembolehubah statik dan kaedah dan anda akan memahami sebab-sebabnya. sekatan.
"Untuk membuat pembolehubah statik (pembolehubah kelas), anda mesti menulis static
kata kunci dalam pengisytiharannya.
"Pembolehubah statik tidak terikat pada objek atau contoh kelas di mana ia diisytiharkan. Sebaliknya, ia tergolong dalam kelas itu sendiri. Itulah sebabnya ia wujud walaupun tidak ada satu pun objek kelas telah dicipta . Anda boleh merujuk kepada mereka dari kelas lain menggunakan konstruk seperti:
ClassName.variableName
Contoh:
Kod | Keterlihatan berubah-ubah |
---|---|
|
|
"Dalam contoh di atas, kami mencipta Storage
kelas berasingan, memindahkan count
dan sum
pembolehubah ke dalamnya, dan mengisytiharkannya statik . Pembolehubah statik awam boleh diakses daripada mana-mana kaedah dalam atur cara (dan bukan sahaja daripada kaedah)."
"Saya tidak faham sepenuhnya, tetapi ini nampaknya sesuai untuk saya."
"Begitu juga. Dan kadangkala ia perlu. Tanpa pembolehubah statik dan kaedah kita akan tersekat."
"Mudah-mudahan, saya perlahan-lahan dapat memikirkannya."
"Ya, sudah tentu anda akan."
GO TO FULL VERSION