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

[Projeto] Desafio resolvido do exercicio 4

package desafio;

public class NumerosPrimos {
    /*
    Crie uma classe NumerosPrimos com métodos como verificarPrimalidade() e listarPrimos().
    Em seguida, crie duas subclasses, VerificadorPrimo e GeradorPrimo, que herdam da classe NumerosPrimos.
    Adicione um metodo específico para cada uma das subclasses, como verificarSeEhPrimo() para o VerificadorPrimo
    e gerarProximoPrimo() para o GeradorPrimo.
    */

    public boolean verificarPrimalidade(int numero){
        if (numero <= 1){
            return false;
        }
        for (int i = 2; i < numero; i++){
            if (numero % i == 0){
                return false;
            }
        }
        return true;
    }

    public void listarPrimos(int limiteMaximo){
        System.out.print("Números primos até " + limiteMaximo + ": ");
        for (int i = 2; i <= limiteMaximo; i++){
            if (verificarPrimalidade(i)){
                if(i == limiteMaximo){
                    System.out.println(i);
                } else {
                    System.out.print(i + ", ");
                }
            }
        }
    }
}
package desafio;

public class VerificadorPrimo extends NumerosPrimos {
    public void verificaSeEhPrimo(int numero){
        String mensagemPersonalizada = "O número " + numero + (super.verificarPrimalidade(numero) ? " é primo." : " não é primo.");
        System.out.println(mensagemPersonalizada);
    }
}
package desafio;

public class GeradorPrimo extends NumerosPrimos{

    public void gerarProximoPrimo(int primo){
        int proximoNumero = primo + 1;

        while (!super.verificarPrimalidade(proximoNumero)){
            proximoNumero++;
        }
        System.out.println("O proximo número primo após o " + primo + " é: " + proximoNumero);
    }
}
package desafio;

public class Main {
    public static void main(String[] args) {
        
        System.out.println("\n4. Criando Numeros Primos\n");
        System.out.println("Numeros Primos:");
        VerificadorPrimo verificadorPrimo = new VerificadorPrimo();
        verificadorPrimo.verificaSeEhPrimo(12);
        verificadorPrimo.verificaSeEhPrimo(13);
        verificadorPrimo.listarPrimos(11);

        GeradorPrimo geradorPrimo = new GeradorPrimo();
        geradorPrimo.gerarProximoPrimo(27);
    }
}
2 respostas

Oi, Aldeny! Como vai?

Agradeço por compartilhar.

Gostei da sua implementação, principalmente na forma como você aplicou herança para reutilizar o método verificarPrimalidade() nas subclasses. A organização das classes ficou clara e o uso do super mostrou que você entendeu bem o reaproveitamento de comportamentos na Orientação a Objetos. A separação de responsabilidades entre VerificadorPrimo e GeradorPrimo também ficou bem definida.

Continue praticando esse modelo de reutilização, pois ele é importante para escrever códigos mais organizados e reutilizáveis.

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

Oie Lorena, Tudo certo por aqui.
Obrigado por me acompanhar e sugerir melhorias, isto está sendo muito importante nesse processo de aprendizado.
Abçs