O Post de hoje é sobre um assunto básico para qualquer programador que esteja iniciando com
Java e ainda não se aprofundou na estrutura da linguagem. Um exemplo simples para entender o que ocorre internamente quando manipulamos tipos primitivos e classes.
Em Java, os ponteiros são implícitos, ou seja, a linguagem não cria objetos e faz cópias a cada ação. Quando você passa o valor de um Objeto para o outro utilizando o operador de atribuição (sinal de igual), é criada uma referência para aquele novo objeto, e não uma cópia.Em outras palavras, os dois apontam para o mesmo endereço de memória. Exemplo :
Classe c1 = new Classe();
Classe c2 = new Classe();
c1.setAtributo("atributo");
c2 = c1; // Caso você altere c1, o valor de c2 também será alterado.
Caso seja necessário fazer cópias de objetos com os mesmo valores, é possível utilizar o seguinte:
Classe c1 = new Classe ();
Classe c2 = new Classe ();
c1.setAtributo("atributo");
c2 = c1.clone(); // c1 e c2 não irão compartilhar o mesmo endereço de memória
Apenas as variáveis primitivas que fazem cópias de seus valores.
Exemplo:
int a = 5;
int b = a;
b++;
System.out.Println("Valor de a: " + a); //Aqui o 'a' continua com o mesmo valor.
Espero ter ajudado quem estava com essa dúvida.
Obrigado e até a próxima !
Nenhum comentário :
Postar um comentário