Boa noite, em um caso no projeto bytebank criamos uma classe de um sistema interno onde temos um metodo de autentica:
public class SistemaInterno {
private int senha = 2222;
public void autentica(Gerente g) {
boolean autenticou = g.autentica(this.senha);
if(autenticou) {
System.out.println("Entrou");
}
else {
System.out.println("Nao entrou");
}
}
}
Dentro do metodo declaramos uma variavel de tipo boolean autenticou e ela usa o metodo que esta na classe gerente autentica. (Metodo autentica na classe gerente):
public boolean autentica(int senha) {
if(this.senha == senha) {
return true;
} else {
return false;
}
}
Tanto a classe Gerente como a classe SistemaInterno possuem um atributo privado senha, a minha duvida é a seguinte, como utilizando o metodo autentica na classe SistemaInterno
boolean autenticou = g.autentica(this.senha);
Passando o parametro this.senha seria o mesmo que g.autentica(2222); como o atributo senha na classe SistemaInterno foi iniciado já com este valor. Por que ele compara com a senha do SistemaInterno e não do Gerente já que o metodo está na classe Gerente, ele usa o método da classe gerente mas na hora da comparação ele compara com seu próprio atributo.