Tenho uma dúvida sobre INSTÂNCIAS, ATRIBUIÇÕES E REFERÊNCIAS.
Quando eu uso o “new”, é uma INSTÂNCIA, disso eu sei. Um exemplo é:
Aluno aluno = new Aluno();
Mas se vc fizer assim:
aluno = bancoDeDados.consulta();
Isso é uma variável do tipo Aluno que está recebendo o vaor do método conculta() que há no Banco de Dados. O que seria isso? Instância também? Ou Atribuição? Já Referência acho que não seja, pois
Já li em algum lugar que Referência é quando a gente usa o findViewById, por exemplo:
Button bt = findViewById(R.id.button);// Isso é mesmo uma referência? Ou Atribuição? Instância eu sei que não é, pois só é instância se usar o “new”.
Blz, INSTÂNCIA com o “new” e passar esse valor pra uma variável é ATRIBUIÇÃO, ok.
Nessa parte fiquei um pouco confusa. Não necessariamente recuperado do banco de dados, ali foi só um exemplo em que se está dando um valor à variável. Ex.:
Sim, no exemplo que mandei, ocorre uma atribuição. Mas para ficar mais completo, seria a atribuição da referência de aluno (da instância que foi criada) para a variável aluno2, ou seja, ambas variáveis estarão com a mesma referência. Depois faça um teste e execute esse código:
Aluno aluno = new Aluno();
Aluno aluno2 = aluno;
System.out.println(aluno); // irá imprimir um valor X
System.out.println(aluno2); // irá imprimir o mesmo valor X
aluno = null;
System.out.println(aluno); // agora irá imprimir NULL
System.out.println(aluno2); // ainda irá imprimir o valor X
Sobre isso:
O método deve retornar uma referência de um objeto, de um determinado tipo, que pode ser atribuída à uma variável de mesmo tipo.
Até pq o valor de aluno foi mudado depois a atribuição dada a aluno2, por isso que o segundo sout do aluno é null, mas do aluno2, como ele não foi alterado depois do seu primeiro sout, é a mesma referência do seu primeiro sout.
Uma das coisas que me motivou a fazer essas perguntas foi como documentar a aplicação, pra saber oq dizer em cada comentário, entende? É isso.