Final secara harfiah berarti "terakhir, final". Makna ini juga diungkapkan dalam Java.
Final dapat digunakan untuk memodifikasi variabel (termasuk atribut kelas, atribut objek, variabel lokal dan parameter formal), metode (termasuk metode kelas dan metode objek), dan kelas.
1. Kelas Modifikasi Akhir:
Kelas modifikasi akhir berarti bahwa kelas ini telah memiliki arti "terakhir, akhir". Oleh karena itu, kelas yang dimodifikasi dengan final tidak dapat diwarisi, yaitu, mereka tidak dapat memiliki subclass sendiri.
Jika tampilan mewarisi kelas yang telah dimodifikasi dengan final, kesalahan dapat terjadi selama kompilasi.
2. Metode modifikasi akhir:
Metode modifikasi akhir berarti bahwa metode ini sudah memiliki makna "terakhir, akhir", yaitu metode ini tidak dapat ditulis ulang (beberapa metode modifikasi akhir dapat kelebihan beban).
Satu hal yang perlu diperhatikan di sini adalah bahwa karena prasyarat untuk menimpa adalah bahwa subkelas dapat mewarisi metode ini dari kelas induk, jika metode final yang dimodifikasi di kelas induk juga memiliki izin kontrol akses pribadi,
Metode ini tidak dapat diwarisi langsung dari subkelas. Oleh karena itu, nama metode dan parameter yang sama dapat didefinisikan dalam subkelas saat ini. Pada saat ini, tidak akan ada kontradiksi antara penulisan ulang dan final.
Metode baru telah didefinisikan ulang di subkelas.
Public Class B memperluas A {public static void main (string [] args) {} public void getName () {}} kelas A { /*** Karena modifikasi pribadi, metode ini tidak dapat diwarisi dalam subkelas. Oleh karena itu, metode getName dalam subclass didefinisikan ulang, * milik subkelas itu sendiri, dan kompilasi normal */private final void getName () {}/ * karena modifikasi pblic, subkelas dapat mewarisi metode final getNume () {} {/} {} {} {compilation void {{{{{{compiled void {{compilation void {{dan void compilation getNOME (dan Compilation GetNOME public GetNOME (dan Compilation GetNOME FINAL PUBLIK KOMPLASI Compilation GetNOn3. Variabel Modifikasi Akhir:
Variabel terakhir yang dimodifikasi berarti bahwa variabel ini memiliki makna "terakhir, akhir". Setelah variabel akhir didefinisikan dan diinisialisasi untuk pertama kalinya, nilai variabel modifikasi akhir tidak dapat diubah.
Berikut beberapa masalah yang perlu dicatat:
1. Variabel modifikasi akhir, apakah mereka adalah atribut kelas, atribut objek, parameter formal atau variabel lokal, variabel -variabel ini perlu ditampilkan diinisialisasi (yaitu, tentukan nilai awal untuk tampilan mereka).
Untuk parameter formal yang dimodifikasi oleh final, mudah dimengerti karena diteruskan oleh parameter aktual.
Untuk variabel lokal yang dimodifikasi berdasarkan final, sama dengan variabel yang tidak dimodifikasi oleh final, mereka perlu menampilkan inisialisasi. Artinya, variabel lokal perlu diinisialisasi.
Untuk atribut kelas umum dan atribut objek, dapat dilihat dari proses inisialisasi kelas dan objek yang pertama kali dilakukan inisialisasi default. Kemudian variabel dengan penugasan yang ditampilkan diinisialisasi lagi.
Namun, untuk atribut kelas dan atribut objek yang dimodifikasi oleh final, jika inisialisasi tidak ditampilkan, nilai default akan menjadi nilai inisialisasi default, yang bertentangan dengan titik awal final itu sendiri. Oleh karena itu, sintaks Java menetapkan:
Atribut kelas dan atribut variabel yang dimodifikasi oleh final harus ditampilkan dan diinisialisasi ditugaskan.
Selain itu, apakah untuk tipe data dasar atau tipe data referensi, variabel akhir yang dimodifikasi ditampilkan untuk pertama kalinya dan tidak dapat dimodifikasi setelah inisialisasi. Mudah dimengerti untuk tipe data dasar. Untuk referensi
Tipe data, variabel referensi menunjuk ke objek aktual, tetapi mereka menyimpan alamat objek yang ditunjukkan. Oleh karena itu, nilainya tidak dapat dimodifikasi tidak berarti bahwa objek yang diarahkan tidak dapat dimodifikasi.
4. "Penggantian Makro"/"Variabel Makro" Masalah yang disebabkan oleh modifikasi akhir
Di Java, variabel makro/penggantian makro mengacu pada fakta bahwa dalam kode Java, beberapa variabel dapat langsung diganti dengan nilai -nilai mereka sendiri selama periode kompilasi dan dikompilasi ke dalam file .class. Oleh karena itu, perubahan ini tidak ada lagi dalam file .class yang dikompilasi.
Dalam variabel tipe string, kadang -kadang situasi berikut sering ditemui:
tes kelas publik {public static void main (string [] args) {string country = "cina"; String name = "qqyumidi"; String userInfo = country + name; // Setelah kompilasi, variabel negara dan nama masih ada di sini, string user = "cina" + "qqyumidi"; // Setelah kompilasi, itu menjadi cinaqqyumidi secara langsung}}Pada baris 9 dari kode di atas, hasil variabel yang dikompilasi adalah langsung Chinaqqyumidi. Di baris 8, karena negara dan nama adalah variabel biasa, kompiler tidak dapat secara langsung menentukan nilai userInfo pada waktu kompilasi, jadi
Hasilnya setelah kompilasi di sini tidak secara langsung Chinaqqyumidi.
Namun, jika Anda ingin kode dalam baris 8 direpresentasikan secara langsung sebagai Chinaqqyumidi selama periode kompilasi, Anda perlu menggunakan pengubah akhir untuk memodifikasi negara dan variabel nama.
Alasan: Variabel yang dimodifikasi oleh pengubah akhir dapat secara langsung menentukan nilainya selama periode kompilasi karena karakteristiknya sendiri, dan nilai ini tidak dapat diubah. Selama proses kompilasi, variabel -variabelnya dapat secara langsung dikonversi menjadi nilai -nilainya untuk representasi.
tes kelas publik {public static void main (string [] args) {final string country = "cina"; nama string terakhir = "qqyumidi"; String userInfo = country + name; // Setelah kompilasi, itu langsung Chianqqyumidi}}Di atas adalah konten lengkap dari poin pengetahuan pengubah final Java (artikel yang harus dibaca) yang dibawa editor kepada Anda. Saya harap ini akan membantu Anda dan mendukung wulin.com lebih banyak ~