Rumah Java javaTutorial Apakah kegunaan kata kunci akhir dalam java

Apakah kegunaan kata kunci akhir dalam java

May 01, 2024 pm 06:24 PM

Kata kunci terakhir dalam Java mempunyai tiga kegunaan berikut: Isytihar pemalar dan pastikan ia tidak boleh diubah suai. Tingkatkan keselamatan kod dengan menghiasi kelas, kaedah dan pembolehubah supaya ia tidak boleh diwarisi, ditindih atau ditugaskan semula. Menggunakan muktamad apabila mengisytiharkan pembolehubah tempatan dalam kaedah atau pembina menghalang pengecualian penuding nol kerana ia memulakan pembolehubah atau memberikannya nilai lalai pada masa penyusunan.

Apakah kegunaan kata kunci akhir dalam java

Penggunaan kata kunci akhir dalam Java

Kata kunci akhir dalam Java ialah pengubah suai berkuasa yang digunakan secara meluas untuk memastikan keselamatan dan ketepatan kod. Ia mempunyai tiga kegunaan utama: final 关键字是一个强大的修饰符,广泛应用于确保代码安全性和正确性。它有三种主要的用法:

1. 声明常量

final 用于声明不能被重新赋值或修改的常量。常量通常用大写字符表示,例如:

final int MAX_VALUE = 100;
Salin selepas log masuk

2. 修饰类、方法和变量

final 可以修饰类、方法和变量,这意味着它们不能被继承、覆盖或重新分配。

  • final 类:不可被继承,防止子类修改或扩展其行为。
  • final 方法:不可被重写,保证方法的行为始终如一。
  • final 变量:不可重新分配,一旦初始化,其值将保持不变。

3. 阻止空指针异常

在方法或构造函数中声明局部变量时使用 final 关键字,可以防止空指针异常。final 变量会在编译时被初始化,如果未显式初始化,则会被自动赋予默认值。

例如,以下代码可能会出现空指针异常:

public void greet(String name) {
    if (name == null) {
        System.out.println("Hello, null!");
    } else {
        System.out.println("Hello, " + name + "!");
    }
}
Salin selepas log masuk

而使用 final 关键字可以避免这种情况:

public void greet(final String name) {
    if (name == null) {
        System.out.println("Hello, null!");
    } else {
        System.out.println("Hello, " + name + "!");
    }
}
Salin selepas log masuk

在这种情况下,编译器会在编译时检测到 name

🎜1. Isytihar pemalar 🎜🎜🎜akhir digunakan untuk mengisytiharkan pemalar yang tidak boleh ditetapkan semula atau diubah suai. Pemalar biasanya diwakili oleh aksara besar, contohnya: 🎜rrreee🎜🎜2 Ubah suai kelas, kaedah dan pembolehubah 🎜🎜🎜akhir boleh mengubah suai kelas, kaedah dan pembolehubah, yang bermaksud ia tidak boleh diwarisi, ditindih. atau agihkan semula. 🎜
  • 🎜kelas akhir: 🎜tidak boleh diwarisi, menghalang subkelas daripada mengubah suai atau melanjutkan tingkah lakunya.
  • 🎜kaedah akhir: 🎜tidak boleh ditindih, memastikan tingkah laku kaedah adalah konsisten.
  • 🎜pembolehubah akhir: 🎜tidak boleh ditetapkan semula, setelah dimulakan, nilainya akan kekal tidak berubah.
🎜🎜3. Cegah Pengecualian Penunjuk Null🎜🎜🎜Gunakan kata kunci akhir semasa mengisytiharkan pembolehubah setempat dalam kaedah atau pembina untuk menghalang Pengecualian Penunjuk Null. Pembolehubah final akan dimulakan pada masa penyusunan Jika tidak dimulakan secara eksplisit, ia akan diberikan nilai lalai secara automatik. 🎜🎜Sebagai contoh, kod berikut mungkin membuang pengecualian penuding nol: 🎜rrreee🎜 Ini boleh dielakkan dengan menggunakan kata kunci final: 🎜rrreee🎜Dalam kes ini, pengkompil akan mengesannya pada masa penyusunan Pembolehubah kepada name tidak dimulakan dan amaran atau ralat dikeluarkan. 🎜

Atas ialah kandungan terperinci Apakah kegunaan kata kunci akhir dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Rangka Kerja 4 JavaScript teratas pada tahun 2025: React, Angular, Vue, Svelte Rangka Kerja 4 JavaScript teratas pada tahun 2025: React, Angular, Vue, Svelte Mar 07, 2025 pm 06:09 PM

Rangka Kerja 4 JavaScript teratas pada tahun 2025: React, Angular, Vue, Svelte

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka? Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka? Mar 17, 2025 pm 05:35 PM

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Isu Tetap Spring Boot Snakeyaml 2.0 CVE-2022-1471 Isu Tetap Mar 07, 2025 pm 05:52 PM

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Isu Tetap

Node.js 20: Peningkatan Prestasi Utama dan Ciri -ciri Baru Node.js 20: Peningkatan Prestasi Utama dan Ciri -ciri Baru Mar 07, 2025 pm 06:12 PM

Node.js 20: Peningkatan Prestasi Utama dan Ciri -ciri Baru

Iceberg: Masa Depan Jadual Data Tasik Iceberg: Masa Depan Jadual Data Tasik Mar 07, 2025 pm 06:31 PM

Iceberg: Masa Depan Jadual Data Tasik

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas? Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas? Mar 17, 2025 pm 05:43 PM

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu? Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu? Mar 17, 2025 pm 05:44 PM

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?

Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan? Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan? Mar 17, 2025 pm 05:46 PM

Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?

See all articles