O professor escreveu o código como se estivesse criando um objeto normal de classe.
AutenticacaoUtil util = new AutenticacaoUtil();
(util está escrito em marrom)
Até aí tudo bem. Logo em seguida ele transformou esse objeto em um atributo!?!?!?!:
this.util = new AutenticacaoUtil();
(util escrito em azul)
Na sequencia, ele utiliza esse atributo para invocar um método, o setSenha()!?!?!?!;
Primeira vez que isso aparece no curso...
Eu tentei fazer um teste simples, criei duas classe, uma classe (teste) com um atributo (String nome) e um método (setNome();), e outra classe (teste1) com o método main, e o objeto (t1) da primeira classe.Posteriormente no main eu invoquei o método utilizando o objeto (t1 escrito em marrom), e funcionou conforme esperado (t1.setNome("nomet1");), e tentei invocar o método pelo atributo (escrito em azul), e não funcionou (nomet1.setNome("novonomet1"));. O código estava assim;
primeira classe
public class teste {
String nome;
public void setNome(String nome) {
this.nome = nome;
}
}
segunda classe com o main
public class teste1 {
public static void main(String[] args) {
teste t1 = new teste();
t1.setNome("nomet1"); // funcionou ok, como eu esperava.
nomet1.setNome("novonomet1"); // nao funciona, o que eu tb esperava.
}
}
Então a minha dúvida é: Quando o professor escreveu essa linha: this.util = new AutenticacaoUtil(); ele fez com que o "util" tivesse o poder de invocar métodos (objeto escrito em marrom), ao mesmo tempo que tb é um atributo (escrito em azul)?
Não ficou exatamente claro pra mim como um atributo pode invocar um método. Poderia explicar de outra forma, por favor?