Rumah > Java > javaTutorial > Bagaimanakah Kata Kunci `akhir` Java Mempengaruhi Pengubahsuaian Objek?

Bagaimanakah Kata Kunci `akhir` Java Mempengaruhi Pengubahsuaian Objek?

DDD
Lepaskan: 2024-12-15 18:04:14
asal
432 orang telah melayarinya

How Does Java's `final` Keyword Affect Object Modification?

Cara Kata Kunci "akhir" dalam Java Berfungsi (Mengubahsuai Objek)

Di Java, kata kunci "akhir" digunakan untuk mengisytiharkan pembolehubah dengan nilai tidak boleh diubah. Walau bagaimanapun, anda mungkin menghadapi senario di mana anda masih boleh mengubah suai objek yang diberikan kepada pembolehubah akhir. Tingkah laku ini memerlukan pemahaman yang lebih mendalam tentang kefungsian akhir.

Kemuncak Pembolehubah

Pembolehubah Contoh:

  • Pembolehubah contoh akhir boleh dimulakan dalam pembina.
  • Setelah dimulakan, mereka tidak boleh ditugaskan semula ke objek lain rujukan.
  • Walau bagaimanapun, kandungan objek (cth., jika ia adalah koleksi) masih boleh diubah suai.

Pembolehubah Statik:

  • Pembolehubah statik akhir mesti dimulakan dalam pengisytiharan kelas itu sendiri.
  • Ia tidak boleh dimulakan dalam pembina atau kaedah.

Contoh

Pertimbangkan kod berikut:

import java.util.ArrayList;
import java.util.List;

class Test {
  private final List foo;

  public Test() {
      foo = new ArrayList();
      foo.add("foo"); // Modification-1
  }

  public static void main(String[] args) {
      Test t = new Test();
      t.foo.add("bar"); // Modification-2
      System.out.println("print - " + t.foo);
  }
}
Salin selepas log masuk
  • Pengubahsuaian-1: Pembolehubah contoh akhir foo dimulakan dengan ArrayList baharu objek dalam pembina.
  • Pengubahsuaian-2: Kaedah add() digunakan untuk mengubah suai kandungan senarai foo, yang dibenarkan.

Akhir Secara Berkesan dalam Java 1.8

Java 1.8 memperkenalkan konsep pembolehubah "akhir secara berkesan". Ini ialah pembolehubah tempatan yang tidak boleh diubah dengan berkesan dalam kelas bersarang atau kelas dalaman tanpa nama. Walaupun mereka tidak menggunakan kata kunci "akhir", mereka tidak boleh ditugaskan semula.

Subkelas dan Mengganti

  • Kelas akhir: Tidak boleh disubkelaskan.
  • Kaedah akhir: Tidak boleh ditindih (dalam subkelas).
  • Kaedah akhir dalam superclass: Boleh ditindih dalam subkelas.

Atas ialah kandungan terperinci Bagaimanakah Kata Kunci `akhir` Java Mempengaruhi Pengubahsuaian Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan