1
resposta

[Projeto] Desafio: hora da prática

// Classe Carro e subclasse ModeloCarro class Carro { private String nomeModelo; private double[] precos = new double[3];

public void setNomeModelo(String nomeModelo) {
    this.nomeModelo = nomeModelo;
}

public void setPrecoAno(int ano, double preco) {
    if (ano >= 0 && ano < precos.length) {
        precos[ano] = preco;
    }
}

public void exibirPrecos() {
    System.out.println("Modelo: " + nomeModelo);
    for (int i = 0; i < precos.length; i++) {
        System.out.println("Ano " + (2023 + i) + ": R$" + precos[i]);
    }
    System.out.println("Menor preço: R$" + calcularMenorPreco());
    System.out.println("Maior preço: R$" + calcularMaiorPreco());
}

private double calcularMenorPreco() {
    double menor = precos[0];
    for (double preco : precos) {
        if (preco < menor) {
            menor = preco;
        }
    }
    return menor;
}

private double calcularMaiorPreco() {
    double maior = precos[0];
    for (double preco : precos) {
        if (preco > maior) {
            maior = preco;
        }
    }
    return maior;
}

}

class ModeloCarro extends Carro { }

// Classe Animal, Cachorro e Gato class Animal { public void emitirSom() { System.out.println("Som genérico de animal."); } }

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

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

}

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

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

}

// Classe ContaBancaria e subclasse ContaCorrente class ContaBancaria { private double saldo;

public void depositar(double valor) {
    saldo += valor;
}

public void sacar(double valor) {
    if (valor <= saldo) {
        saldo -= valor;
    } else {
        System.out.println("Saldo insuficiente.");
    }
}

public double consultarSaldo() {
    return saldo;
}

}

class ContaCorrente extends ContaBancaria { public void cobrarTarifaMensal() { sacar(20.0); System.out.println("Tarifa mensal cobrada."); } }

// Classe NumerosPrimos, VerificadorPrimo e GeradorPrimo class NumerosPrimos { 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; } }

class VerificadorPrimo extends NumerosPrimos { public void verificarSeEhPrimo(int numero) { if (verificarPrimalidade(numero)) { System.out.println(numero + " é primo."); } else { System.out.println(numero + " não é primo."); } } }

class GeradorPrimo extends NumerosPrimos { public void gerarProximoPrimo(int aPartirDe) { int numero = aPartirDe + 1; while (!verificarPrimalidade(numero)) { numero++; } System.out.println("Próximo primo: " + numero); } }

// Classe principal com testes public class Main { public static void main(String[] args) { // Teste do Carro ModeloCarro carro = new ModeloCarro(); carro.setNomeModelo("Civic"); carro.setPrecoAno(0, 110000); carro.setPrecoAno(1, 115000); carro.setPrecoAno(2, 120000); carro.exibirPrecos();

    // Teste dos Animais
    Animal cachorro = new Cachorro();
    Animal gato = new Gato();
    cachorro.emitirSom();
    gato.emitirSom();
    ((Cachorro) cachorro).abanarRabo();
    ((Gato) gato).arranharMoveis();

    // Teste da Conta
    ContaCorrente conta = new ContaCorrente();
    conta.depositar(100);
    conta.cobrarTarifaMensal();
    System.out.println("Saldo atual: R$" + conta.consultarSaldo());

    // Teste dos Números Primos
    VerificadorPrimo verificador = new VerificadorPrimo();
    verificador.verificarSeEhPrimo(17);

    GeradorPrimo gerador = new GeradorPrimo();
    gerador.gerarProximoPrimo(17);
}

}

1 resposta

Oi Camila! Tudo joia?

Seu código parece estar alinhado com os conceitos de herança, polimorfismo e sobrescrita de métodos.

Quando enfrentar algum problema específico ou se tem alguma dúvida, sinta-se à vontade para pedir ajuda aqui no fórum.

Bons estudos!