Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução

package com.github.lucasdevrj.exercicios.enviandomensagens;

public class Notificacao {

    public void enviarMensagem(String mensagem) {
        String mensagemFormatada = String.format("Mensagem enviada para todos: %s", mensagem);
        System.out.println(mensagemFormatada);
    }

    public void enviarMensagem(String contato, String mensagem) {
        String mensagemFormatada = String.format("Mensagem para %s: %s", contato, mensagem);
        System.out.println(mensagemFormatada);
    }

    public void enviarMensagem(String contato, String mensagem, int quantidade) {
        for (int i = 0; i < quantidade; i++) {
            String mensagemFormatada = String.format("Mensagem para %s: %s", contato, mensagem);
            System.out.println(mensagemFormatada);
        }
    }

}
/**
 * Você está desenvolvendo um sistema de comunicação para uma plataforma de colaboração em equipe.
 * Esse sistema precisa lidar com diferentes cenários de envio de mensagens.
 *
 * Crie um programa que utilize sobrecarga de métodos para implementar as seguintes variações:
 *
 * Enviar uma mensagem padrão para todos os contatos, como Olá!.
 * Enviar uma mensagem personalizada para um contato específico, como Bom dia para João.
 * Reforçar uma mensagem enviando-a mais de uma vez para o mesmo contato, como: "Atenção!" para Maria,
 * enviada duas vezes.
 * Exemplo de entrada:
 *
 * notificacao.enviarMensagem("Olá!");
 * notificacao.enviarMensagem("João", "Bom dia!");
 * notificacao.enviarMensagem("Maria", "Atenção!", 2);
 *
 * Saída esperada:
 *
 * Mensagem enviada para todos: Olá!
 * Mensagem para João: Bom dia!
 * Mensagem para Maria: Atenção!
 * Mensagem para Maria: Atenção!
 */

package com.github.lucasdevrj.exercicios.enviandomensagens;

public class Principal {
    public static void main(String[] args) {
        Notificacao notificacao = new Notificacao();
        notificacao.enviarMensagem("katchau");
        notificacao.enviarMensagem("Sally", "Vamos dar uma voltinha?");
        notificacao.enviarMensagem("Relâmpago Mcqueen", "Vai uma gasolina orgânica ai? Cara", 3);
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Beleza?

1 resposta

Olá, Lucas! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a sobrecarga de métodos para diferentes cenários de envio de mensagens com Java, utilizou muito bem o String.format para padronizar a saída e ainda compreendeu a importância da estrutura de repetição para reforçar mensagens múltiplas.

Uma dica interessante para o futuro é aplicar varargs quando quiser flexibilizar a quantidade de parâmetros, tornando o código ainda mais versátil. Assim:

public void enviarMensagem(String contato, String... mensagens) {
    for (String mensagem : mensagens) {
        System.out.println(String.format("Mensagem para %s: %s", contato, mensagem));
    }
}

Isso faz com que seja possível enviar várias mensagens diferentes para o mesmo contato em uma única chamada.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Mensagens claras: manter consistência no formato exibido.
  • Organização em pacotes: separar classes de serviço, modelo e execução.
  • Testes unitários: validar cada sobrecarga para garantir que o comportamento esperado se mantém.

Ah, uma pergunta: você acha que a sobrecarga de métodos é a melhor forma de lidar com diferentes cenários de envio de mensagens ou prefere usar parâmetros opcionais e estruturas condicionais para simplificar?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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