1. Pemalar
Banyak bahasa pengaturcaraan lain mempunyai pemalar , iaitu pembolehubah yang nilainya tidak boleh diubah . Biasanya, ia digunakan untuk beberapa jenis perkara asas seperti bilangan Pi
atau bilangan hari dalam bulan dalam setahun. Yang berkata, pada dasarnya, seorang pengaturcara boleh menjadikan sebarang pembolehubah sebagai pemalar, jika dia memutuskan bahawa berbuat demikian adalah perlu.
Jadi bagaimana anda mengisytiharkan pembolehubah tidak berubah (malar) di Jawa? Terdapat kata kunci khas untuk ini: final
. Mencipta pembolehubah tidak berubah kelihatan sama seperti mencipta pembolehubah biasa. Satu-satunya perbezaan ialah sebelum jenis pembolehubah anda perlu menulis perkataan final
, seperti ini:
final Type name = value;
Jika anda cuba memberikan nilai yang berbeza kepada final
pembolehubah, maka program anda tidak akan dikompil.
Pembolehubah final
mesti dimulakan (nilai mesti diberikan kepadanya) apabila ia diisytiharkan. Terdapat satu pengecualian kepada peraturan ini: anda boleh memindahkan permulaan pembolehubah kelas statik ke dalam pembina. Tetapi anda akan belajar tentang perkara ini di Tahap 10 .
Untuk mengurangkan bilangan kata kunci, pembangun Java menggunakan perkataan itu final
untuk lebih daripada sekadar mengisytiharkan pemalar. final
juga boleh digunakan untuk kaedah dan juga kelas. Kaedah yang diisytiharkan sebagai final
tidak boleh ditindih, dan kelas yang diisytiharkan sebagai final
tidak boleh diwarisi.
Pengubah final
suai boleh ditambah sebelum sebarang pembolehubah: pembolehubah tempatan, parameter kaedah, medan kelas dan pembolehubah kelas statik.
Ambil perhatian bahawa final
sebelum nama pembolehubah hanyalah perlindungan terhadap sebarang perubahan pada pembolehubah itu . Jika pembolehubah menyimpan rujukan kepada objek, maka objek itu masih boleh diubah.
Contoh:
|
Kami membuat tatasusunan. Ini tidak dibenarkan: pembolehubah data diisytiharkan sebagai final . Tetapi anda boleh melakukan ini. Dan juga ini. |
Pemalar global
Jika anda memutuskan untuk mengisytiharkan pemalar global dalam program anda, maka anda perlu mencipta pembolehubah kelas statik , dan menjadikannya public
dan final
. Terdapat gaya khas untuk nama pembolehubah tersebut: ia ditulis dalam semua huruf besar, dengan aksara garis bawah digunakan untuk memisahkan perkataan.
Contoh:
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;
}
2. Pembayang boleh ubah
Seperti yang kami katakan sebelum ini, anda tidak boleh mencipta beberapa pembolehubah tempatan dengan nama yang sama dalam kaedah yang sama. Dalam kaedah yang berbeza, anda boleh.
Tetapi inilah perkara yang anda mungkin tidak tahu: pembolehubah contoh dan pembolehubah kaedah tempatan boleh mempunyai nama yang sama.
Contoh:
Kod | Keterlihatan berubah-ubah |
---|---|
|
|
Dalam add
kaedah tersebut, kami mengisytiharkan pembolehubah tempatan bernama sum
. Sehingga akhir kaedah, ia membayangi (atau menutup ) sum
pembolehubah contoh.
Baiklah, anda katakan, itu boleh dijangka dalam beberapa segi. Tetapi itu bukan penghujung cerita. Ternyata jika pembolehubah contoh dibayangi oleh pembolehubah tempatan, masih terdapat cara untuk merujuk kepada pembolehubah contoh dalam kaedah tersebut. Kami melakukan ini dengan menulis this
kata kunci sebelum namanya:
this.name
Berikut ialah contoh di mana konflik nama berjaya diselesaikan:
Kod | Keterlihatan berubah-ubah |
---|---|
|
|
Pembolehubah count
dan sum
tersedia di mana-mana dengan atau tanpa this
kata kunci. Pada baris di mana sum
pembolehubah tempatan membayangi sum
pembolehubah contoh, sum
pembolehubah tika hanya boleh diakses menggunakan this
kata kunci.
Jika pembolehubah kelas statik dan bukannya pembolehubah contoh dibayangi, maka anda perlu mengaksesnya melalui nama kelas dan bukannya kata this
kunci:
ClassName.name
Contoh:
Kod | Keterlihatan berubah-ubah |
---|---|
|
|
Anda boleh mengakses pembolehubah statik count
dan sum
di mana-mana dengan atau tanpa menggunakan nama kelas Solution
sebagai awalan. Dalam baris di mana sum
pembolehubah tempatan membayangi sum
pembolehubah contoh, akses kepada sum
pembolehubah tika hanya mungkin apabila digunakan Solution
sebagai awalan.
3. Pembolehubah di dalam for
gelung
Dan satu lagi fakta kecil tetapi menarik.
Terdapat juga tempat di mana pembolehubah diisytiharkan dengan cara yang istimewa — di dalam for
gelung .
Anda mungkin masih ingat bahawa for
gelung biasanya mempunyai pembolehubah pembilang dalam kurungan. Dan apakah keterlihatan pembolehubah ini? Lagipun, ia bukan dalam badan gelung. Adakah kaedah keseluruhannya? Atau tidak?
Jawapan yang betul ialah: pembolehubah yang diisytiharkan dalam pengepala gelung hanya for
kelihatan dalam badan gelung dan dalam pengepala gelungfor
.
Contoh:
Kod | Keterlihatan berubah-ubah |
---|---|
|
|
Jadi, anda sentiasa boleh menulis gelung satu demi satu dalam kod anda dan menggunakan pembolehubah pembilang dengan nama yang sama — yang tidak akan menimbulkan sebarang masalah.
Contoh:
Kod | Keterlihatan berubah-ubah |
---|---|
|
|
GO TO FULL VERSION