Classe Carro:
class Carro {
private String nomeModelo;
private double[] precos;
public Carro(String nomeModelo, double[] precos) {
this.nomeModelo = nomeModelo;
this.precos = precos;
}
public void definirNomeModelo(String nomeModelo) {
this.nomeModelo = nomeModelo;
}
public String obterNomeModelo() {
return nomeModelo;
}
public double obterMenorPreco() {
double menor = precos[0];
for (double preco : precos) {
if (preco < menor) {
menor = preco;
}
}
return menor;
}
public double obterMaiorPreco() {
double maior = precos[0];
for (double preco : precos) {
if (preco > maior) {
maior = preco;
}
}
return maior;
}
public void mostrarInformacoes() {
System.out.println("Modelo: " + nomeModelo);
System.out.println("Menor Preço: " + obterMenorPreco());
System.out.println("Maior Preço: " + obterMaiorPreco());
}
}
class ModeloCarro extends Carro {
public ModeloCarro(String nomeModelo, double[] precos) {
super(nomeModelo, precos);
}
}
Classes Animal, Cachorro, Gato:
public class Animal {
public void emitirSom() {
System.out.println("Som do animal");
}
}
public class Cachorro extends Animal {
@Override
public void emitirSom() {
System.out.println("Au Au");
}
public void abanarRabo() {
System.out.println("Cachorro abanando o rabo");
}
}
public class Gato extends Animal {
@Override
public void emitirSom() {
System.out.println("Miau");
}
public void arranharMoveis() {
System.out.println("Gato arranhando móveis");
}
}
Classe ContaBancaria, ContaCorrente:
class ContaBancaria {
protected double saldo;
public void depositar(double quantia) {
saldo += quantia;
}
public void sacar(double quantia) {
if (quantia <= saldo) {
saldo -= quantia;
} else {
System.out.println("Saldo insuficiente");
}
}
public double consultarSaldo() {
return saldo;
}
}
class ContaCorrente extends ContaBancaria {
private static final double TARIFA_MENSAL = 15.0;
public void cobrarTarifaMensal() {
if (saldo >= TARIFA_MENSAL) {
saldo -= TARIFA_MENSAL;
} else {
System.out.println("Saldo insuficiente para cobrar a tarifa mensal");
}
}
}
Classe NumerosPrimos, VerificadorPrimo, 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;
}
public void listarPrimos(int limite) {
for (int i = 2; i <= limite; i++) {
if (verificarPrimalidade(i)) {
System.out.print(i + " ");
}
}
System.out.println();
}
}
class VerificadorPrimo extends NumerosPrimos {
public boolean verificarSeEhPrimo(int numero) {
return verificarPrimalidade(numero);
}
}
class GeradorPrimo extends NumerosPrimos {
private int ultimoPrimo = 1;
public int gerarProximoPrimo() {
int numero = ultimoPrimo + 1;
while (!verificarPrimalidade(numero)) {
numero++;
}
ultimoPrimo = numero;
return numero;
}
}