// 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);
}
}