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

Array com valores primitivos x de referência.

Seria possível estabelecer uma comparação dos dois tipos para entender melhor?

Primitivo:

public static void main(String[] args) {
            int[] idades = new int[5];//inicializa array com 0

Referência:

public class TesteArrayReferencias {

    public static void main(String[] args) {

        ContaCorrente[] contas = new ContaCorrente[5];
        ContaCorrente cc1 = new ContaCorrente(22, 11);
        contas[0] = cc1;

        ContaCorrente cc2 = new ContaCorrente(22, 22);
        contas[1] = cc2;

        System.out.println(contas[1].getNumero());

        ContaCorrente ref = contas[1];
        System.out.println(cc2.getNumero());
        System.out.println(ref.getNumero());
1 resposta
solução!

Olá Mario, tudo bem com você?

A única diferença entre os dois casos está nos tipos dos elementos dentro do array. Ou seja, o array em si continua agindo da mesma forma para todos os casos, a diferença é que quando adicionamos referências dentro dele, agora estamos guardando o endereço de memória das contas e não as contas propriamente ditas.

O que significa que caso tenhamos duas contas cc1 e cc2 apontando para o mesmo endereço de memória:

ContaCorrente[] contas = new ContaCorrente[5];

ContaCorrente cc1 = new ContaCorrente(22, 11);
contas[0] = cc1;

ContaCorrente cc2 = contas[0];
contas[1] = cc2;

Caso mudarmos o número de uma das contas, a mudança afetará ambas a contas por estarem apontando para o mesmo endereço de memória:

contas[0].setNumero(22);

Se imprimirmos as duas contas, ambas terão o número da conta 22.

Fez sentido? Qualquer dúvida é só avisar!!

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