1
resposta

Resolução

Compartilhando minha resolução. O quarto exercício foi bem mais complicado hehe, tive que pedir ajuda ao ChatGTP e olhar a resolução do professor.

/**
 * 1. Crie uma classe Carro com métodos para representar um modelo específico ao longo de três anos.
 * Implemente métodos para definir o nome do modelo, os preços médios para cada ano,
 * e calcular e exibir o menor e o maior preço. Adicione uma subclasse ModeloCarro para criar instâncias específicas,
 * utilizando-a na classe principal para definir preços e mostrar informações.
 */

package desafios.desafio03;

public class Carro {

    private String nomeDoModelo;
    private double precoMedioPrimeiroAno;
    private double precoMedioSegundoAno;
    private double precoMedioTerceiroAno;

    public void definirNomeDoModelo(String nomeDoModelo) {
        this.nomeDoModelo = nomeDoModelo;
        System.out.println("Nome do modelo foi definido com sucesso!");
    }

    public void definirPrecosMediosDosTresAnos(double precoMedioPrimeiroAno, double precoMedioSegundoAno, double precoMedioTerceiroAno) {
        this.precoMedioPrimeiroAno = precoMedioPrimeiroAno;
        this.precoMedioSegundoAno = precoMedioSegundoAno;
        this.precoMedioTerceiroAno = precoMedioTerceiroAno;
        System.out.println("Os preços médios dos três primeiros anos foram definidos com sucesso!");
    }

    public void exibirMaiorPrecoMedio() {
        double maiorPreco = precoMedioPrimeiroAno;
        if (maiorPreco < precoMedioSegundoAno) {
            maiorPreco = precoMedioSegundoAno;
        }

        if (maiorPreco < precoMedioTerceiroAno) {
            maiorPreco = precoMedioTerceiroAno;
        }

        System.out.println("O maior preço médio é R$" + maiorPreco);
    }

    public void exibirMenorPrecoMedio() {
        double menorPreco = precoMedioPrimeiroAno;
        if (menorPreco > precoMedioSegundoAno) {
            menorPreco = precoMedioSegundoAno;
        }

        if (menorPreco > precoMedioTerceiroAno) {
            menorPreco = precoMedioTerceiroAno;
        }

        System.out.println("O menor preço médio é R$" + menorPreco);
    }
}

package desafios.desafio03;

public class ModeloCarro extends Carro {

}
/**
 * 2. Crie uma classe Animal com um método emitirSom(). Em seguida, crie duas subclasses:
 * Cachorro e Gato, que herdam da classe Animal. Adicione o método emitirSom() nas subclasses,
 * utilizando a anotação @Override para indicar que estão sobrescrevendo o método. Além disso,
 * adicione métodos específicos para cada subclasse, como abanarRabo() para o Cachorro e arranharMoveis() para o Gato.
 **/

package desafios.desafio03;

public class Animal {

    public void emitirSom() {
        System.out.println("Emitindo som!");
    }

}

package desafios.desafio03;

public class Cachorro extends Animal {

    @Override
    public void emitirSom() {
        System.out.println("Au Au");
    }

    public void abanarRabo() {
        System.out.println("Abanando o rabo");
    }
}

package desafios.desafio03;

public class Gato extends Animal {

    @Override
    public void emitirSom() {
        System.out.println("Miau");
    }

    void arranharMoveis() {
        System.out.println("Arranhando moveis");
    }
}
/**
 * 3. Crie uma classe ContaBancaria com métodos para realizar operações bancárias como depositar(),
 * sacar() e consultarSaldo(). Em seguida, crie uma subclasse ContaCorrente que herda da classe ContaBancaria.
 * Adicione um método específico para a subclasse, como cobrarTarifaMensal(), que desconta uma tarifa mensal
 * da conta corrente.
 */

package desafios.desafio03;

public class ContaBancaria {

    protected double saldo;

    public void depositar(double valor) {
        saldo += valor;
        System.out.printf("O valor de R$%.2f foi depositado com sucesso.\n", valor);
    }

    public void sacar(double valor) {
        saldo -= valor;
        System.out.printf("O valor de R$%.2f foi sacado com sucesso.\n", valor);
    }

    public void consultarSaldo() {
        System.out.printf("O saldo atual é de R$%.2f.\n", saldo);
    }

}

package desafios.desafio03;

public class ContaCorrente extends ContaBancaria {

    public void cobrarTarifaMensal() {
        saldo -= 0.01;
        System.out.println("A tarifa mensal de R$0,01 centavo foi cobrada.");
    }

}

Continuando abaixo...

1 resposta
/**
 * 4. 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 método específico para cada uma das subclasses, como verificarSeEhPrimo() para o
 * VerificadorPrimo e gerarProximoPrimo() para o GeradorPrimo.
 */

package desafios.desafio03;

public class NumerosPrimos {

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

    public void listarPrimos(int numero) {
        System.out.print("Esses são os números primos até o número " + numero + ": ");
        for (int i = 2; i <= numero; i++) {
            if (verificarPrimalidade(i)) {
                if (i < numero) {
                    System.out.print(i + ", ");
                }
            }
        }
    }

}

package desafios.desafio03;

public class VerificadorPrimo extends NumerosPrimos {

    public void verificarSeEhPrimo(int numero) {
        boolean ehPrimo = verificarPrimalidade(numero);
        if (ehPrimo) {
            System.out.println("O número " + numero + " é um número primo.");
        } else {
            System.out.println("O número " + numero + " não é um número primo.");
        }
    }

}

package desafios.desafio03;

public class GeradorPrimo extends NumerosPrimos {

    public void gerarProximoPrimo(int numero) {
        int proximoPrimo = numero;
        do {
            proximoPrimo++;
        } while (!verificarPrimalidade(proximoPrimo));
        System.out.println("O próximo número primo é " + proximoPrimo);
    }
}
package desafios.desafio03;

public class Principal {
    public static void main(String[] args) {
        ModeloCarro modeloCarro = new ModeloCarro();
        modeloCarro.definirNomeDoModelo("Toyota Corolla");
        modeloCarro.definirPrecosMediosDosTresAnos(142000, 144000, 141000);
        modeloCarro.exibirMaiorPrecoMedio();
        modeloCarro.exibirMenorPrecoMedio();

        System.out.println("-------------------------------");

        Animal animal = new Animal();
        animal.emitirSom();

        Cachorro cachorro = new Cachorro();
        cachorro.emitirSom();
        cachorro.abanarRabo();

        Gato gato = new Gato();
        gato.emitirSom();
        gato.arranharMoveis();

        System.out.println("-------------------------------");
        ContaCorrente contaCorrente = new ContaCorrente();
        contaCorrente.depositar(100);
        contaCorrente.consultarSaldo();
        contaCorrente.cobrarTarifaMensal();
        contaCorrente.consultarSaldo();
        contaCorrente.sacar(10);
        contaCorrente.consultarSaldo();
        contaCorrente.cobrarTarifaMensal();
        contaCorrente.consultarSaldo();

        System.out.println("-------------------------------");
        NumerosPrimos numerosPrimos = new NumerosPrimos();
        numerosPrimos.listarPrimos(20);

        VerificadorPrimo verificadorPrimo = new VerificadorPrimo();
        System.out.println();
        System.out.println();
        verificadorPrimo.verificarSeEhPrimo(7);

        GeradorPrimo geradorPrimo = new GeradorPrimo();
        geradorPrimo.gerarProximoPrimo(5);
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
O que acharam?