1

O que é uma classe imutável ?

#Java
Elis Fernanda
Elis Fernanda

Olá! Seja bem vindo ao meu primeiro artigo aqui no Digital Innovation One! E sendo inicial, gostaria de reservar este primeiro parágrafo para breve apresentação pessoal. Meu nome é Elis Fernanda. Estou já estou atuando a algum tempo na carreira de desenvolvedora de sistemas java. Tive que parar por um tempo a faculdade de sistema de informação pois tive que me mudar. Hoje moro na Polônia com meu marido e continuo estudando conteúdos de T.I pra melhorar meu desenvolvimento. E nesse estudo teve uma dúvida muito interessante sobre classe imutável.

Estava um belo dia conversando com meu esposo Alan sobre seu processo seletivo realizado por uma empresa internacional e lhe perguntei o que lhe foi questionado. Papo vai e papo vem até que ele me fez uma pergunta muito interessante, o que é classe imutável?

Nem ele mesmo soube responder na própria entrevista, pois é um assunto muito pouco comentado entre os caros colegas de TI. Então comecei a pesquisar um pouco mais sobre essa classe e resolvi escrever sobre ela e divulgar um pouco mais sobre o assunto.

Após algumas leituras constatei que a classe imutável quando é instanciada, os seus valores são fixos, não podem sofrer nenhum tipo de alteração. E se o programador tiver que realizar alguma alteração futura o mesmo vai ter que gerar um novo objeto do mesmo tipo, ele só pode ser gerado após as variáveis de objeto obtiverem os valores fixos. Abaixo segue um exemplo de uma classe imutável:

public class HorasTrabalhadas{

 private Long Id;

 private String nome;
    
 private String cpf;
  
 private integer codigoFuncionario; 
  
 public HorasTrabalhadas(){
 }
  
 public HorasTrabalhadas(String nome, String cpf, integer codigoFuncionario){
    
    this.nome = nome;

    this.cpf = cpf;
    
    this.codigoFuncionario = codigoFuncionario;

  }
    
 public Long getId() {

	return id;
 } 

 public String getNome() {

	return nome;
 } 

 public String getCpf() {

	return cpf;
 }

 public integer getCodigoFuncionario() {

	return codigoFuncionario;
 }     
            
}

O exemplo acima refere-se a uma classe utilizada para apenas a visualização de dados como uma folha de ponto. Consumindo a informação necessária sem a opção de alteração da mesma. Uma classe simples de ser aplicada.

Devemos constatar também a importância desse objeto ser protegido apos ser instanciado, assim nenhum outro objeto ou usuário terá o acesso permitindo modificá-lo. Sem essa privação a classe ficará exposta permitindo qualquer classe instanciá-lo e com isso alterando os dados das variáveis, assim perdendo o valor de ser uma classe imutável para uma classe mutável.

Modificador Final

O modificador final é uma classe reservada que altera a forma de acesso dos métodos, das classes e dos atributos. Quando o modificador "final" é declarado na classe, atributo ou objeto tem como objetivo indicar que ambos não podem ser alterados no decorrer do processamento e também não podem ser sobrescritos. Abaixo segue alguns exemplos para melhor entendimento.

public  final class HelloWord{


 private final String frase = "Hello Word";
    
 
 public HelloWord(){
 }
  
 public HelloWord(String frase){
    
    this.frase = frase;   
  }
    

 public final void exibeFrase() {

	System.out.println(this.frase);
 } 

 
            
}

  • A classe HelloWord por ser final não pode ser herdada por nenhuma outra classe e com isso garante uma segurança e garante também que as regras postas nesta classe sejam seguidas.
  • O atributo "frase" modificado para final o seu valor não pode ser modificado até o ciclo final do objeto.
  • O método "exibeFrase" definido como final não pode ser alterado mesmo sendo herdado por outra classe não permite ser sobrescrito.

Então pessoal espero que vocês tenham gostado do meu primeiro artigo e que venham outros.


0
36

Comentários (1)

0
Francisco Gomes

Francisco Gomes

09/07/2021 01:03

Excelente explicação. Parabéns.

None

Polônia