3)
package br.com.alura.screenmatch.modelos;
public class ContaBancaria {
private double saldo = 0;
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public void depositar(double valor) {
this.saldo += valor; // Soma o valor ao saldo atual
System.out.println("Depósito de " + valor + " realizado. Saldo atual: " + getSaldo());
}
public void sacar(double valor) {
if (valor <= saldo) {
this.saldo -= valor;
System.out.printf("Saque de " , valor , " realizado. Saldo atual: %2.f %n", getSaldo());
} else {
System.out.println("Saldo insuficiente para saque.");
}
}
public void consultarSaldo() {
System.out.printf("Saldo atual: %.2f %n" , getSaldo());
}
}
package br.com.alura.screenmatch.modelos;
public class ContaCorrente extends ContaBancaria{
private double tarifaMensal = 0.20;
public void cobrarTarifaMensal() {
double saldoAtual = getSaldo();
saldoAtual -= tarifaMensal;
setSaldo(saldoAtual);
System.out.println("Tarifa mensal de " + tarifaMensal + " cobrada. Saldo atual: " + saldoAtual);
}
@Override
public void depositar(double valor) {
// Utiliza o método setSaldo para somar ao saldo da ContaBancaria
double saldoAtual = getSaldo(); // Pega o saldo atual
saldoAtual += valor; // Soma o valor ao saldo
setSaldo(saldoAtual); // Atualiza o saldo usando o setSaldo
System.out.println("Depósito de " + valor + " realizado. Saldo atual na conta-corrente: " + getSaldo());
}
}
import br.com.alura.screenmatch.modelos.ContaBancaria;
import br.com.alura.screenmatch.modelos.ContaCorrente;
public class ContaBancariaTeste {
public static void main(String[] args) {
// Criando uma conta bancária com saldo inicial de 1000
ContaBancaria conta = new ContaBancaria();
conta.depositar(2000);
conta.consultarSaldo();
// Realizando operações na conta corrente
ContaCorrente contaCorrente = new ContaCorrente();
contaCorrente.depositar(300);
contaCorrente.cobrarTarifaMensal();
contaCorrente.consultarSaldo();
contaCorrente.sacar(250);
contaCorrente.consultarSaldo();
}
}
4)
package br.com.alura.screenmatch.modelos;
public class GeradorPrimo extends NumerosPrimos {
public int gerarProximoPrimo(int ultimoPrimoConhecido) {
int proximoNumero = ultimoPrimoConhecido + 1;
while (!verificarPrimalidade(proximoNumero)) {
proximoNumero++;
}
return proximoNumero;
}
}
package br.com.alura.screenmatch.modelos;
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();
}
}
package br.com.alura.screenmatch.modelos;
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.");
}
}
}
import br.com.alura.screenmatch.modelos.GeradorPrimo;
import br.com.alura.screenmatch.modelos.NumerosPrimos;
import br.com.alura.screenmatch.modelos.VerificadorPrimo;
public class NumerosPrimosTeste {
public static void main(String[] args) {
VerificadorPrimo verificador = new VerificadorPrimo();
verificador.verificarSeEhPrimo(29);
GeradorPrimo gerador = new GeradorPrimo();
int proximoPrimo = gerador.gerarProximoPrimo(29);
System.out.println("O próximo primo após 29 é: " + proximoPrimo);
NumerosPrimos numerosPrimos = new NumerosPrimos();
numerosPrimos.listarPrimos(30);
}
}