1. Konstanta
Banyak bahasa pemrograman lain yang memiliki konstanta , yaitu variabel yang nilainya tidak dapat diubah . Biasanya, mereka digunakan untuk beberapa hal mendasar seperti jumlah Pi
atau jumlah hari dalam bulan dalam setahun. Yang mengatakan, pada prinsipnya, seorang programmer dapat membuat variabel apa pun menjadi konstanta, jika dia memutuskan bahwa hal itu diperlukan.
Jadi bagaimana Anda mendeklarasikan variabel yang tidak dapat diubah (konstanta) di Jawa? Ada kata kunci khusus untuk ini: final
. Membuat variabel yang tidak dapat diubah terlihat sama dengan membuat variabel biasa. Satu-satunya perbedaan adalah sebelum tipe variabel Anda perlu menulis kata final
, seperti ini:
final Type name = value;
Jika Anda mencoba untuk menetapkan nilai yang berbeda ke final
variabel, maka program Anda tidak dapat dikompilasi.
Variabel final
harus diinisialisasi (nilai harus diberikan padanya) saat dideklarasikan. Ada satu pengecualian untuk aturan ini: Anda dapat memindahkan inisialisasi variabel kelas statis ke konstruktor. Tapi Anda akan mempelajarinya di Level 10 .
Untuk mengurangi jumlah kata kunci, pengembang Java menggunakan kata tersebut final
lebih dari sekadar mendeklarasikan konstanta. final
juga dapat diterapkan pada metode dan bahkan kelas. Metode yang dinyatakan sebagai final
tidak dapat ditimpa, dan kelas yang dinyatakan sebagai final
tidak dapat diwariskan.
Pengubah final
dapat ditambahkan sebelum variabel apa pun: variabel lokal, parameter metode, bidang kelas, dan variabel kelas statis.
Perhatikan bahwa final
sebelum nama variabel hanyalah perlindungan terhadap setiap perubahan pada variabel itu . Jika variabel menyimpan referensi ke suatu objek, maka objek tersebut masih dapat diubah.
Contoh:
|
Kami membuat array. Ini tidak diperbolehkan: variabel data dideklarasikan sebagai final . Tapi Anda bisa melakukan ini. Dan juga ini. |
konstanta global
Jika Anda memutuskan untuk mendeklarasikan konstanta global dalam program Anda, maka Anda perlu membuat variabel kelas statis , dan membuatnya public
dan final
. Ada gaya khusus untuk nama variabel tersebut: ditulis dengan huruf kapital semua, dengan karakter garis bawah digunakan untuk memisahkan kata.
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. Bayangan variabel
Seperti yang kami katakan sebelumnya, Anda tidak dapat membuat beberapa variabel lokal dengan nama yang sama dalam metode yang sama. Dengan cara yang berbeda, Anda bisa.
Tapi inilah yang mungkin tidak Anda ketahui: variabel instan dan variabel metode lokal dapat memiliki nama yang sama.
Contoh:
Kode | Visibilitas variabel |
---|---|
|
|
Dalam add
metode ini, kami mendeklarasikan variabel lokal bernama sum
. Sampai akhir metode, itu membayangi (atau menutupi ) sum
variabel instan.
Oke, katamu, itu yang diharapkan dalam arti tertentu. Tapi itu bukan akhir dari cerita. Ternyata jika variabel instan dibayangi oleh variabel lokal, masih ada cara untuk merujuk ke variabel instan di dalam metode. Kami melakukan ini dengan menulis this
kata kunci sebelum namanya:
this.name
Berikut adalah contoh di mana konflik nama berhasil diselesaikan:
Kode | Visibilitas variabel |
---|---|
|
|
Variabel count
and sum
tersedia di mana saja dengan atau tanpa this
kata kunci. Pada baris di mana sum
variabel lokal membayangi sum
variabel instan, sum
variabel instan hanya dapat diakses menggunakan this
kata kunci.
Jika variabel kelas statis daripada variabel instan dibayangi, maka Anda perlu mengaksesnya melalui nama kelas daripada kata this
kunci:
ClassName.name
Contoh:
Kode | Visibilitas variabel |
---|---|
|
|
Anda dapat mengakses count
dan sum
variabel statis di mana saja dengan atau tanpa menggunakan nama kelas Solution
sebagai awalan. Di baris di mana sum
variabel lokal membayangi sum
variabel instan, akses ke sum
variabel instan hanya dimungkinkan bila digunakan Solution
sebagai awalan.
3. Variabel di dalam satu for
lingkaran
Dan satu lagi fakta kecil tapi menarik.
Ada juga tempat di mana variabel dideklarasikan dengan cara khusus — di dalam for
loop .
Anda mungkin ingat bahwa sebuah for
loop biasanya memiliki variabel counter dalam tanda kurung. Dan apa yang akan menjadi visibilitas variabel ini? Lagi pula, itu tidak ada di dalam tubuh loop. Apakah ini seluruh metode? Atau tidak?
Jawaban yang benar adalah: variabel yang dideklarasikan di header loop for
hanya dapat dilihat di badan loop dan di header for
loop .
Contoh:
Kode | Visibilitas variabel |
---|---|
|
|
Jadi, Anda selalu dapat menulis loop satu demi satu dalam kode Anda dan menggunakan variabel penghitung dengan nama yang sama — itu tidak akan menimbulkan masalah.
Contoh:
Kode | Visibilitas variabel |
---|---|
|
|
GO TO FULL VERSION