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

[Projeto] Desafio resolvido

package com.github.aldenyjr.exercicios.controle_de_senha;

public class Usuario {
    private String nome;
    private String senha;

    public Usuario(String nome, String senha) {
        this.nome = nome;
        this.senha = senha;
    }

    public void alterarSenha(String senhaAtual, String novaSenha) {
        if (!senhaEhIgual(senhaAtual)) {
            System.out.println("Senha atual incorreta. A senha não foi alterada.");
        } else {
            this.senha = novaSenha;
            System.out.println("Senha alterada com sucesso!");
        }

    }

    private boolean senhaEhIgual(String senhaAtual) {
        return this.senha.equals(senhaAtual);
    }
}
package com.github.aldenyjr.exercicios.controle_de_senha;

public class ControleDeSenha {
    public static void main(String[] args) {
        var usuario = new Usuario("AldenyJunior", "Alura123");
        usuario.alterarSenha("Alura123456", "Fiap123");
        usuario.alterarSenha("Alura123", "Fiap123");
    }
}

Resultado:

Senha atual incorreta. A senha não foi alterada.
Senha alterada com sucesso!
2 respostas

Oi, Aldeny! Como vai?

Agradeço por compartilhar.

Eu gostei bastante da forma como você organizou a validação da senha usando o método privado senhaEhIgual. Isso mostra um bom entendimento de encapsulamento, separando a lógica de verificação do restante do código. E, o fluxo de teste no main ficou bem claro, mostrando tanto o caso de erro quanto o de sucesso.

Você pode usar o método Objects.equals, que ajuda a evitar possíveis erros com valores nulos.


import java.util.Objects;

public boolean senhaEhIgual(String senhaAtual) {
    return Objects.equals(this.senha, senhaAtual);
}

Esse código compara as strings com mais segurança, evitando erros caso alguma delas seja null.

Conteúdos relacionados
Alura

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

solução!

Obrigado