Boa tarde pessoal.
Eu achava que tinha entendido o uso do "this", até chegar nessa aula e ficar travado tentando entender isso que deve ser bem simples. O professor utilizou "this.senha", se referenciando ao atributo da classe SistemaInterno. Ele usou chamando o método "autentica" que é da classe "Gerente" e que está sendo chamado com a referência "g", que vai ser um objeto "Gerente" instanciado.
public class SistemaInterno{
private int senha = 2222;
public void autenticando(Gerente g){
boolean autenticou = g.autentica(this.senha);
if(autenticou){
System.out.println("Pode entrar no sistema");
} else {
System.out.println("Não pode entrar no sistema");
}
}
}
O "this" não se refere(auto-referência) a uma referência(g) de um objeto já instanciado que está chamando o método(g.autentica(this.senha)) ? Esse objeto tem um atributo chamado "senha", eu imaginava que com o uso do "this" ele usaria a "senha" do objeto já instanciado. E como está em "private", esse método da outra classe não conseguiria sem usar um "g.getSenha". Quando se coloca um parâmetro em um método ele será uma variável local, só vai existir naquele método? Por isso o uso do "this.senha" pegando o atributo "senha" da própria classe?
Main:
Gerente g = new Gerente();
g.setSenha(2222);
SistemaInterno si = new SistemaInterno();
si.autenticando(g);
Classe Gerente:
private int senha;
public boolean autentica(int senha){
if(this.senha==senha){
return true;
}
}
Obrigado .