Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

por que o Login é um método estático?

durante a aula o professor criou uma classe

export class SistemaAutenticacao{
        static login(funcionario, senha){
        return funcionario.senha == senha;
    }

e eu não entendo por que o login tem que ser um método estático, por que eu não posso declarar ele como outros metodos do curso como o sacar ou depositar do modulo anterior?

4 respostas
solução!

Fala ai Lucien, tudo bem? Acho que foi apenas por questões de ensino e didática, para ele mostrar exemplos com métodos estáticos.

Espero ter ajudado.

Olá, mas qual a diferença de um método "normal" e um método estático?

Pois se tirarmos o Static do método login na programação citada vem o erro de que não é uma função.

Programação

//index
import { Gerente } from "./Funcionários/Gerente.js";
import { SistemaDeAutentificacao } from "./Funcionários/SistemaDeAutentificacao.js";

const gerente = new Gerente("Jorge", 11122233388, 100000)
gerente.cadastrarSenha("2323");

const estaLogado = SistemaDeAutentificacao.login(gerente, "2323");

console.log(estaLogado)
//SistemaDeAutentificacao
export class SistemaDeAutentificacao{

    login(autenticavel, senha){
        if(SistemaDeAutentificacao.ehautenticavel(autenticavel)){
        return autenticavel.autentificador(senha);
        }
        return false
    }
    ehautenticavel(autenticavel){
        return "autentificador" in autenticavel && autenticavel.autentificador instanceof Function;
    }

}

Dessa forma deduzo que uma método é similar a função, assim surgiu a seguinte dúvida, qual a diferença entre uma função e um método?

Tô muito confuso

o que eu entendi lendo em outros lugares, é que o metodo estático usa como referencia a Classe de forma genérica.

já o metodo "normal" usa de referencia o objeto que a gente """pega""" da classe.

então o

const drAbobrinha = new Vilão {}

o Dr Abobrinha chamaria uma metodo mas Vilão chamaria um método estatico.

Fala Vitor, a diferença é como a Lucien explicou, métodos estáticos ficam amarrados na classe e não a sua instância (objetos).

Ai você utiliza eles passando o nome da classe mais o nome do método, exemplo: NomeDaClasse.nomeDoMetodo().

Espero ter ajudado.