Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Se eu modificar os objetos de uma referencia, altera o valor para as outras referencias ?

Se eu modificar os objetos cc2 através da referencia ref, isso ira alterar o valor de cc2 se eu imprimir diretamente da array ?

não teria como eu fazer uma copia de um objeto para outro objeto sem torna-la uma referencia ?

1 resposta
solução!

Olá Carlos, tudo bem?

Exatamente, se você modificar um objeto cc2 através de uma referência ref, isso irá alterar o valor do objeto cc2 original. Isso acontece porque a referência ref aponta para o mesmo objeto que a variável cc2, e qualquer modificação feita através da referência será refletida na variável original. Se quiser copiar um objeto sem torná-lo uma referência, você pode usar o método de clonagem do Java. O método clone permite que você crie uma cópia independente de um objeto, que pode ser modificado sem afetar o objeto original. No entanto, para usar o método clone, a classe do objeto precisa implementar a interface Cloneable e o método clone deve ser sobrescrito corretamente.

Por exemplo:

public class Pessoa implements Cloneable {
    private String nome;
    private int idade;

    public Pessoa(String nome, int idade) {
        this.nome = nome;
        this.idade = idade;
    }

    public String getNome() {
        return nome;
    }

    public int getIdade() {
        return idade;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

public class Main {
    public static void main(String[] args) {
        Pessoa p1 = new Pessoa("João", 30);
        Pessoa p2 = null;
        try {
            p2 = (Pessoa) p1.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        System.out.println("Nome original: " + p1.getNome());
        System.out.println("Nome clonado: " + p2.getNome());
    }
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software