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

[Projeto] Validação de login

Olá!

Segue minha resolução:

  • Classe senha:
package br.com.alura.exercicios;

public class Senha {

    private String login;
    private String senha;

    public Senha(String login, String senha) {
        this.login = login;
        this.senha = senha;
    }

    public String getLogin() {

        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {

        return senha;
    }

    public void setSenha(String senha) {

        this.senha = senha;
    }
    public void verificaSenha(){

            System.out.printf("Login bem sucedido!");
        }
}
  • Main:
package br.com.alura.exercicios;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int tentativa = 3;
        boolean loginCorreto = false;
        Senha senha = new Senha("Aluno2025", "escola@123");
        System.out.println("Digite o nome de usuário: ");
        for (int i = 0; i < tentativa; i++) {
            String loginInserido = sc.next();
            sc.nextLine();
        if (loginInserido.equals(senha.getLogin())){
                loginCorreto = true;
                break;
        } else {
                int numeroTentativas = tentativa - (i + 1);
                System.out.printf("Nome de usuário incorreto. Tente novamente. " +
                        "\nTentativas restantes: %d ", numeroTentativas);
                if (numeroTentativas == 0){
                    System.out.println("Acesso bloqueado!");
                    System.exit(0);
                }
            }
        }
        System.out.println("Digite a senha: ");
        boolean senhaCorreta = false;
        for(int j = 0; j < tentativa; j++){
            String senhaInserida = sc.next();
            sc.nextLine();
            if (senhaInserida.equals(senha.getSenha())) {
                senhaCorreta = true;
                senha.verificaSenha();
            } else {
                int numeroTentativas = tentativa - (j +1);
                System.out.printf("Senha incorreta! Tente novamente!" +
                        "Tentativas restantes: %d", numeroTentativas);
                if (numeroTentativas == 0){
                    System.out.println("Acesso bloqueado!");
                    System.exit(0);
                }

            }
        }
    sc.close();
    }
}
1 resposta
solução!

Olá, Victor, como vai?

Seu código apresenta uma boa organização inicial e o uso correto do encapsulamento com atributos privados e métodos acessores. Entretanto, a lógica de validação proposta no exercício solicita que a classe possua um método específico para receber as credenciais digitadas e retornar o resultado da autenticação. No seu código, a classe Senha contém apenas o método verificaSenha que imprime uma mensagem fixa, sem realizar a comparação real entre o que foi digitado e o que está armazenado.

Para alinhar seu código ao que foi solicitado, o método de validação dentro da classe Senha deve receber parâmetros e retornar um valor booleano. Por exemplo:

public boolean validarAcesso(String loginDigitado, String senhaDigitada) { 

    return this.login.equals(loginDigitado) && this.senha.equals(senhaDigitada); 
    
}

Parabéns por praticar o uso da classe Scanner e as estruturas de repetição, continue compartilhando suas resoluções conosco para fortalecer seu aprendizado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!