Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Sistema de autenticação

Olá,

acabei de fazer o codigo da Aula, porem ao rodar, sempre retorna a senha como False, mesmo ela sendo igual. Vi em um dos post aqui do fórum que foi colocado no SistemaAutenticacao a _senha, e realmente funciona e o retorno é true ,mas acho que isso foge da objetio da Aula visto que foi colocado m metodo get, não acho o erro no código.

Funcionario:

export class Funcionario {

constructor(nome, salario, cpf) {

this._nome = nome

this._salario = salario 
this._cpf = cpf 
this._bonificacao = 1
this._senha

}

get senha() {

this._senha

}

cadastraSenha(senha) {

this._senha
}

}

SistemaAutenticacao:

export class SistemaAutenticacao{

static login(funcionario, senha){

return funcionario.senha == senha;
 }
}

index:

//importe das class

import { Cliente } from './Cliente.js'

import {Diretor} from "./Funcionario/Diretor.js"

import {Gerente} from "./Funcionario/Gerente.js"

import {SistemaAutenticacao} from "./SistemaAutenticacao.js"

const diretor = new Diretor("Barbara", 1000, 39519322855) diretor.cadastraSenha("14593")

const gerente = new Gerente("Estefania", 5000, 98584361754) gerente.cadastraSenha("123")

const estaLogado = SistemaAutenticacao.login(gerente, "123")

console.log(estaLogado)

1 resposta
solução!

Olá, Bárbara, tudo bem?

No seu código, há dois problemas na classe Funcionario, vamos analisá-la:

export class Funcionario {

  constructor(nome, salario, cpf) {

   this._nome = nome

    this._salario = salario 
    this._cpf = cpf 
    this._bonificacao = 1
    this._senha
  }

  get senha() {

    this._senha
  }

  cadastraSenha(senha) {

    this._senha
    }

}

O primeiro problema está no acessor get senha(), faltou retornar o valor do atributo _senha, então basta usar o código abaixo:

    get senha() {
        return this._senha
    }

O outro problema está no método cadastraSenha(), que está faltando atribuir a senha recebida por parâmetro para o atributo _senha da classe, então o código abaixo deve resolver:

    cadastraSenha(senha) {
        this._senha = senha
    }

Por esses motivos a autenticação falhava e sempre retornava false! Fiz as alterações aqui e funcionou normalmente, veja se também dá certo aí.

Espero ter te ajudado! Se tiver mais dúvidas ou dificuldades, estaremos aqui para te responder. Abraços e bons estudos :)

Caso esta resposta tenha resolvido sua dúvida, por favor, marque como solucionada ✓. Bons Estudos!