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

Bagaimanakah Kata Kunci `akhir` Java Mempengaruhi Pengubahsuaian Objek?

DDD
DDDasal
2024-12-15 18:04:14435semak imbas

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);
  }
}
  • 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!

Kenyataan:
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