1
resposta

[Dúvida] Controle de senha

package Relatorio.ControleDeSenha;

public class User {

    private String senha;

    public User(String senha) {
        this.senha = senha;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha, String novaSenha) {
        if (senha.equals(getSenha())) {
            System.out.println("Senha alterada com sucesso!");
        } else {
            System.out.println("Senha atual Incorreta. A senha não foi alterada");
        }
         this.senha = novaSenha;
    }
}



package Relatorio.ControleDeSenha;

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


        User user = new User("123456");

        user.setSenha("123456", "abc123");

    }
}
1 resposta

Oi, Wanderson! Como vai?

Agradeço por compartilhar.

Eu gostei da forma como você aplicou o encapsulamento criando get e set para a senha. Isso mostra que você já está pensando em proteger os dados da classe. Um ponto importante é que, mesmo quando a senha tá incorreta, você ainda está atualizando o valor em this.senha = novaSenha, o que quebra a validação.

Uma dica interessante para o futuro é controlar melhor essa validação usando retorno booleano para indicar sucesso.


public boolean setSenha(String senhaAtual, String novaSenha) {
    if (senhaAtual.equals(this.senha)) {
        this.senha = novaSenha;
        return true;
    }
    return false;
}

Esse código valida a senha atual antes de alterar e retorna true ou false, permitindo que o programa saiba se a troca foi realizada.

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