Ini sedikit pertanyaan lama, tapi saya pikir saya tetap akan menyumbangkan 2 sen saya karena utas ini muncul dalam percakapan hari ini.
Ini tidak persis menjawab mengapa tidak ada const? tetapi bagaimana membuat kelas Anda tidak berubah. (Sayangnya saya belum memiliki reputasi yang cukup untuk memposting sebagai komentar atas jawaban yang diterima)
Cara untuk menjamin kekekalan pada suatu objek adalah dengan merancang kelas Anda lebih hati-hati agar tidak berubah. Ini membutuhkan sedikit perawatan lebih dari kelas yang bisa berubah.
Ini kembali ke Item 15 Java Efektif Josh Bloch - Minimalkan Mutabilitas . Jika Anda belum membaca buku itu, ambil salinannya dan bacalah beberapa kali. Saya jamin itu akan meningkatkan "permainan java" kiasan Anda .
Dalam item 15, Bloch menyarankan agar Anda membatasi mutabilitas kelas untuk memastikan status objek.
Mengutip buku secara langsung:
Kelas yang tidak berubah hanyalah kelas yang instansnya tidak dapat dimodifikasi. Semua informasi yang terkandung dalam setiap instance disediakan ketika dibuat dan diperbaiki untuk seumur hidup objek. Pustaka platform Java berisi banyak kelas yang tidak dapat diubah, termasuk String, kelas primitif kotak, dan BigInteger dan BigDecimal. Ada banyak alasan bagus untuk ini: Kelas yang tidak dapat berubah lebih mudah untuk dirancang, diimplementasikan, dan digunakan daripada kelas yang bisa berubah. Mereka kurang rentan terhadap kesalahan dan lebih aman.
Bloch kemudian menjelaskan cara membuat kelas Anda tidak berubah, dengan mengikuti 5 aturan sederhana:
- Jangan berikan metode apa pun yang mengubah status objek (mis., Setter, alias mutator )
- Pastikan bahwa kelas tidak dapat diperpanjang (ini berarti menyatakan kelas itu sendiri sebagai
final
).
- Buat semua bidang
final
.
- Buat semua bidang
private
.
- Pastikan akses eksklusif ke komponen yang dapat berubah. (dengan membuat salinan defensif dari objek)
Untuk lebih jelasnya saya sangat merekomendasikan mengambil salinan buku.
const
kata kunci, tetapi tidak ada fitur yang mendasarinya. Koreksi judul dan tag Anda sesuai.