1
resposta

[Projeto] Validação de login

package Login;

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

        Conta conta1 = new Conta("gab", "12345");

        conta1.validadarSenha();
    }
}
package Login;

import java.util.Scanner;

public class Conta {
    private String login;
    private String senha;

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

    Scanner ler = new Scanner(System.in);

    public void validadarSenha(){
        int tentativas = 2;
        while (tentativas > -1){
            System.out.println("login: ");
            String tentativaLogin = ler.nextLine();

            System.out.println("Senha: ");
            String tentativaSenha = ler.nextLine();


            if (tentativaLogin.equals(login) && tentativaSenha.equals(senha)){
                System.out.println("Login bem sucedido!");
                break;
            }else if (tentativas == 0){
                System.out.println("Acesso bloqueado! Maximo de tentativas");
            }else {
                System.out.println("Login ou senha incorretos. Tentativas restantes: " + tentativas);
            }
            tentativas--;
        }
        ler.close();
    }
}
1 resposta

Oi, Gabriel. Como vai?

Você aplicou corretamente o encapsulamento com os atributos private e também a lógica de tentativas no método validadarSenha(). E isso mostra uma boa preocupação com organização e controle de acesso. Um ajuste importante no seu código é declarar o método principal como public static void main(String[] args), para que a aplicação possa ser executada corretamente.

Uma dica interessante para o futuro é criar um método como validarLogin(String loginDigitado, String senhaDigitada) para separar a regra de validação da leitura com Scanner. Isso deixa o código mais organizado e facilita testes. Veja este exemplo:


public boolean validarLogin(String loginDigitado, String senhaDigitada) {
    return loginDigitado.equals(login) && senhaDigitada.equals(senha);
}

Nesse caso, o método compara os valores digitados com os dados salvos na conta e retorna true ou false.

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