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.
//Classe ContaBancaria
public class ContaBancaria {
protected double saldo;
public void depositar(double valor) {
saldo += valor;
System.out.println("Depósito de " + valor + " realizado. Saldo atual: " + saldo);
}
public void sacar(double valor) {
if (valor <= saldo) {
saldo -= valor;
System.out.println("Saque de " + valor + " realizado. Saldo atual: " + saldo);
} else {
System.out.println("Saldo insuficiente para saque.");
}
}
public void consultarSaldo() {
System.out.println("Saldo atual: " + saldo);
}
}
//Subclasse ContaCorrente
public class ContaCorrente extends ContaBancaria {
private double tarifaMensal;
public void cobrarTarifaMensal() {
saldo -= tarifaMensal;
System.out.println("Tarifa mensal de " + tarifaMensal + " cobrada. Saldo atual: " + saldo);
}
}
//Classe Teste
public class TesteContaBancaria {
public static void main(String[] args) {
// Criando uma conta bancária com saldo inicial de 1000
ContaBancaria conta = new ContaBancaria();
conta.depositar(1000);
conta.consultarSaldo();
// Realizando operações na conta corrente
ContaCorrente contaCorrente = new ContaCorrente();
contaCorrente.depositar(200);
contaCorrente.cobrarTarifaMensal();
contaCorrente.consultarSaldo();
contaCorrente.sacar(150);
contaCorrente.consultarSaldo();
}
}
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.
public class NumerosPrimos {
public boolean verificarPrimalidade(int numero) {
if (numero <= 1) {
return false;
}
for (int i = 2; i * i <= numero; i++) {
if (numero % i == 0) {
return false;
}
}
return true;
}
public void listarPrimos(int limiteSuperior) {
System.out.println("Números primos até " + limiteSuperior + ": ");
for (int i = 2; i <= limiteSuperior; i++) {
if (verificarPrimalidade(i)) {
System.out.print(i + " ");
}
}
System.out.println();
}
}
// Subclasse VerificadorPrimo
public 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.");
}
}
}
// Subclasse GeradorPrimo
public class GeradorPrimo extends NumerosPrimos {
public int gerarProximoPrimo(int ultimoPrimoConhecido) {
int proximoNumero = ultimoPrimoConhecido + 1;
while (!verificarPrimalidade(proximoNumero)) {
proximoNumero++;
}
return proximoNumero;
}
}
// Classe de Teste
public class TesteNumerosPrimos {
public static void main(String[] args) {
VerificadorPrimo verificador = new VerificadorPrimo();
verificador.verificarSeEhPrimo(17);
GeradorPrimo gerador = new GeradorPrimo();
int proximoPrimo = gerador.gerarProximoPrimo(17);
System.out.println("O próximo primo após 17 é: " + proximoPrimo);
NumerosPrimos numerosPrimos = new NumerosPrimos();
numerosPrimos.listarPrimos(30);
}
}```