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

[Desafio: hora da prática] Está correto?

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 Estudo;

public class Carro {
    private String marca;
    private String modelo;
    private int precoAno2022;
    private int precoAno2023;
    private int precoAno2024;

    //Construtor
    public Carro(String marca, String modelo, int precoAno2022, int precoAno2023, int precoAno2024) {
        this.marca = marca;
        this.modelo = modelo;
        this.precoAno2022 = precoAno2022;
        this.precoAno2023 = precoAno2023;
        this.precoAno2024 = precoAno2024;
    }

    //Getters
    public String getMarca() {
        return marca;
    }

    public String getModelo() {
        return modelo;
    }

    public int getPrecoAno2022() {
        return precoAno2022;
    }

    public int getPrecoAno2023() {
        return precoAno2023;
    }

    public int getPrecoAno2024() {
        return precoAno2024;
    }

    public void fichaTecnica() {
        System.out.println("Marca: " +getMarca());
        System.out.println("Modelo: " +getModelo());
    }

    public int mediaPreco() {
        int mediaPrecoAnual = (precoAno2022 + precoAno2023 + precoAno2024) / 3;
        System.out.println("A média de preços é: " +mediaPrecoAnual);
        return mediaPrecoAnual;
    }

    public void verificacaoPreco() {
        int maior;
        int menor;

        //Verificação do maior preço
        if (precoAno2022 >= precoAno2023 && precoAno2022 >= precoAno2024) {
            maior = precoAno2022;
            System.out.println("Maior preço: " +precoAno2022);
        } else if (precoAno2023 >= precoAno2022 && precoAno2023 >= precoAno2024) {
            maior = precoAno2023;
            System.out.println("Maior preço: " +precoAno2023);
        } else {
            maior = precoAno2024;
            System.out.println("Maior preço: " +precoAno2024);
        }

        //Verificação do menor preço
        if (precoAno2022 <= precoAno2023 && precoAno2022 <= precoAno2024) {
            menor = precoAno2022;
            System.out.println("Menor preço: " +precoAno2022);
        } else if (precoAno2023 <= precoAno2022 && precoAno2023 <= precoAno2024) {
            menor = precoAno2023;
            System.out.println("Menor preço: " +precoAno2023);
        } else {
            menor = precoAno2024;
            System.out.println("Menor preço: " +precoAno2024);
        }
    }
}
package Estudo;

public class ModeloCarro extends Carro{
    public ModeloCarro(String marca, String modelo, int precoAno2022, int precoAno2023, int precoAno2024) {
        super(marca, modelo, precoAno2022, precoAno2023, precoAno2024);
    }

    public static void main(String[] args) {
        ModeloCarro meuCarro = new ModeloCarro("Jeep", "Wrangler",
                429990, 456992, 500000);

        meuCarro.fichaTecnica();
        meuCarro.mediaPreco();
        meuCarro.verificacaoPreco();
    }

}

Saída esperada:

Marca: Jeep
Modelo: Wrangler
A média de preços é: 462327
Maior preço: 500000
Menor preço: 429990

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 Desafio02;

public class Animal {

    //Métodos
    public void emitirSom() {
        System.out.println("Grunhido");
    }
}
package Desafio02;

public class Cachorro extends Animal {
    @Override
    public void emitirSom() {
        System.out.println("Au! Au!");
    }

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

    public static void main(String[] args) {
        Cachorro meuCachorro = new Cachorro();

        meuCachorro.emitirSom();
        meuCachorro.abanarRabo();
    }
}
package Desafio02;

public class Gato extends Animal {
    @Override
    public void emitirSom() {
        System.out.println("Miau!");
    }

    public void arranharMoveis() {
        System.out.println("Arranhando móveis");
    }

    public static void main(String[] args) {
        Gato meuGato = new Gato();

        meuGato.emitirSom();
        meuGato.arranharMoveis();
    }
}

Saída esperada 1:

Au! Au!
Abandando o rabo

Saída esperada 2:

Miau!
Arranhando móveis
2 respostas

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 Desafio03;

public class ContaBancaria {
    //Variáveis
    private int saldo = 2100;

    //Getters
    public int getSaldo() {
        return saldo;
    }

    //Métodos
    public void depositar(int valor) {
        this.saldo += valor;
        System.out.println("Saldo atualizado: " +getSaldo());
    }

    public void sacar(int valor) {
        this.saldo -= valor;
        System.out.println("Saldo atualizado: " +getSaldo());
    }

    public void consultarSaldo() {
        System.out.println(getSaldo());
    }

    protected void diminuirSaldo(int valor) {
        this.saldo -= valor;
    }
}
package Desafio03;

public class ContaCorrente extends ContaBancaria {
    //Método específico
    public void cobrarTarifa() {
        int taxa = 25;
        diminuirSaldo(taxa);
        System.out.println(getSaldo());
    }

    public static void main(String[] args) {
        ContaCorrente minhaConta = new ContaCorrente();

        minhaConta.consultarSaldo();
        minhaConta.depositar(900);
        minhaConta.sacar(2000);
        minhaConta.cobrarTarifa();
    }
}

Saída esperada:

Seu saldo é: 2100
Saldo atualizado: 3000
Saldo atualizado: 1000
Saldo atualiado pós tarifa: 975

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.

Não consegui resolver :(
solução!

Olá, Luiz.

Como vai?

Muito obrigado por compartilhar os seus desafios aqui com a gente. Isso mostra que você está de fato praticando e evoluindo. 

No geral você fez um ótimo trabalho! Seus exercícios estão bem estruturados e funcionando conforme o esperado. Parabéns!

Em relação ao exercício 4 Classe NumerosPrimos, VerificadorPrimo e GeradorPrimo você pode fazer da seguinte forma:

package Desafio04;

public class NumerosPrimos {

    // Método para verificar se um número é primo
    public boolean verificarPrimalidade(int numero) {
        if (numero <= 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(numero); i++) {
            if (numero % i == 0) {
                return false;
            }
        }
        return true;
    }
}

package Desafio04;

public class VerificadorPrimo extends NumerosPrimos {

    // Método específico para verificar se um número é primo
    public void verificarSeEhPrimo(int numero) {
        if (verificarPrimalidade(numero)) {
            System.out.println(numero + " é primo.");
        } else {
            System.out.println(numero + " não é primo.");
        }
    }

    public static void main(String[] args) {
        VerificadorPrimo verificador = new VerificadorPrimo();
        verificador.verificarSeEhPrimo(17); // Exemplo de verificação
    }
}

package Desafio04;

import java.util.ArrayList;
import java.util.List;

public class GeradorPrimo extends NumerosPrimos {

    // Método específico para gerar próximos números primos
    public List<Integer> gerarProximoPrimo(int quantidade) {
        List<Integer> primos = new ArrayList<>();
        int numero = 2;
        while (primos.size() < quantidade) {
            if (verificarPrimalidade(numero)) {
                primos.add(numero);
            }
            numero++;
        }
        return primos;
    }

    public static void main(String[] args) {
        GeradorPrimo gerador = new GeradorPrimo();
        List<Integer> primos = gerador.gerarProximoPrimo(10); // Exemplo de geração de primos

        System.out.println("Os próximos 10 números primos são: " + primos);
    }
}

É apenas uma sugestão, veja se faz sentido se funciona

Para ver as resoluções dos desafios acesse a etapa dos desafios: Desafio: Hora daprática e clique em VER OPINIÃO DO INSTRUTOR para ver a sugestão de resposta do instrutor do curso:

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

Se precisar de ajuda, manda aqui. Bons estudos!