Essa é uma pergunta um pouco antiga, mas pensei em contribuir com meus 2 centavos de qualquer maneira, já que esse tópico surgiu na conversa hoje.
Isso não responde exatamente por que não há const? mas como tornar suas aulas imutáveis. (Infelizmente ainda não tenho reputação suficiente para postar como comentário na resposta aceita)
A maneira de garantir a imutabilidade de um objeto é projetar suas classes com mais cuidado para serem imutáveis. Isso requer um pouco mais de cuidado do que uma classe mutável.
Isso remonta ao item efetivo Java de Josh Bloch 15 - Minimizar a mutabilidade . Se você ainda não leu o livro, pegue uma cópia e leia-a algumas vezes, garanto que ele exibirá seu "jogo java" figurativo .
No item 15, Bloch sugere que você limite a mutabilidade das classes para garantir o estado do objeto.
Para citar o livro diretamente:
Uma classe imutável é simplesmente uma classe cujas instâncias não podem ser modificadas. Todas as informações contidas em cada instância são fornecidas quando criadas e são fixadas durante a vida útil do objeto. As bibliotecas da plataforma Java contêm muitas classes imutáveis, incluindo String, as classes primitivas in a box e BigInteger e BigDecimal. Há muitas boas razões para isso: Classes imutáveis são mais fáceis de projetar, implementar e usar do que classes mutáveis. Eles são menos propensos a erros e são mais seguros.
Bloch descreve como tornar suas aulas imutáveis, seguindo 5 regras simples:
- Não forneça métodos que modifiquem o estado do objeto (por exemplo, setters, também conhecidos como mutadores )
- Verifique se a classe não pode ser estendida (isso significa declarar a própria classe como
final
).
- Faça todos os campos
final
.
- Faça todos os campos
private
.
- Garanta acesso exclusivo a qualquer componente mutável. (fazendo cópias defensivas dos objetos)
Para mais detalhes, eu recomendo pegar uma cópia do livro.
const
palavra-chave, mas não há nenhum recurso subjacente. Corrigido seu título e tags de acordo.