Artikel ini terutama menganalisis kata kunci umum Java final, static, super, dan ini secara rinci untuk memudahkan referensi pembaca. Dengan rincian sebagai berikut:
1. terakhir
1) Ubah kelas:
Menunjukkan bahwa kelas ini tidak dapat diwariskan
2) Memodifikasi metode (metode)
Menunjukkan bahwa metode ini tidak dapat ditimpa (@override)
3) Ubah variabel (variabel)
Menunjukkan bahwa nilai variabel ini tidak dapat diubah nanti. Ini sering digunakan untuk mengubah konstanta yang tidak dapat diubah.
Catatan: final secara harfiah berarti "final" dan "tidak dapat diubah". Lebih mudah untuk menghafalnya dengan menggabungkan artinya.
2. statis (cara kedua dan ketiga biasa digunakan)
1) Ubah kelas:
(Tidak umum digunakan) hanya dapat digunakan untuk memodifikasi kelas dalam. Kelas biasa tidak diperbolehkan mendeklarasikan cara ini.
2) Memodifikasi metode (metode)
Metode statis milik kelas (dibagi antar objek), bukan milik objek tertentu. Tidak perlu membuat objek, Anda bisa menggunakan nama kelas untuk memanggil metode ini.
(Ketika program dijalankan, bytecode kelas dimuat ke dalam memori. Ketika kelas tidak membuat objek, variabel kelas telah dialokasikan memori, dan variabel instan dialokasikan ruang memori hanya ketika objek tertentu dibuat. )
3) Ubah variabel (variabel)
Mirip dengan 2), variabel dibagikan di tingkat kelas dan tidak perlu membuat objek, tetapi perubahan nilai variabel bersifat integral. Artinya, jika objek A mengubah nilai variabel statis dengan beroperasi di atasnya, maka objek B akan beroperasi di atasnya.
Catatan: Blok kode yang dimodifikasi dengan statis disebut blok kode statis. Blok kode statis dieksekusi terlebih dahulu ketika JVM memuat kelas. Di mana pun mereka ditempatkan, blok kode tersebut dieksekusi terlebih dahulu, dan kemudian blok kode normal dieksekusi. Mungkin ada beberapa blok kode statis, yang akan dieksekusi oleh JVM sesuai urutan kemunculannya. Setiap blok kode hanya akan dieksekusi satu kali.
Kata kunci this dan super tidak dapat muncul dalam metode statis.
3. super: (mengacu pada referensi ke kelas induk)
1) Terkait dengan Kelas (kelas induk, disebut juga kelas super):
Panggil konstruktor kelas induk melalui super(parameter 1, parameter 2,..., parameter n);
2) Terkait Metode (metode)
super.Method(parameter 1, parameter 2,..., parameter n) memanggil metode kelas induk yang diganti;
3) Terkait dengan variabel (variabel)
super.variable, panggil variabel kelas induk
Catatan: super harus digunakan pada baris pertama konstruktor subkelas;
Jika kelas induk tidak memiliki konstruktor tanpa parameter, subkelas perlu menggunakan super untuk memanggil konstruktor kelas induk secara eksplisit. Super mengacu pada referensi ke kelas induk.
4. ini: (referensi ke objek saat ini)
1) Terkait kelas:
ini(parameter 1, parameter 2,..., parameter n), ini adalah konstruktor biasa. Hanya konstruktor (lainnya) yang dapat memanggil konstruktor (ini), dan fungsi biasa tidak dapat memanggil konstruktor.
2) Metode terkait:
Panggil metode pada objek saat ini
3) Variabel (variabel) yang berhubungan:
Panggil variabel objek saat ini
Catatan: this(); dan super(); secara eksplisit memanggil konstruktor hanya dapat ditempatkan di baris pertama konstruksi;
this.method..();super.method..(); dapat ditempatkan di mana saja dan digunakan sebagai metode normal;
Ada perbedaan besar antara konstruktor dan metode yang menggunakan kata kunci this. Referensi metode this menunjuk ke instance kelas tempat metode tersebut dijalankan. Metode statis tidak dapat menggunakan kata kunci ini, karena metode statis bukan milik instance kelas, jadi ini tidak ada hubungannya. This dari konstruktor menunjuk ke konstruktor lain di kelas yang sama dengan daftar parameter berbeda.