Segue a maneira que estruturei para fazer o problema 3 em relação ao sistema bancário. Esse foi o problema que eu mais me identifiquei e que geralmente são mais utilizados também para aprendizado
package atvModulo3a03;
//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.
public class ContaBancaria {
public void depositar(){
}
public void sacar(){
}
public void consultarSaldo(){
}
}
package atvModulo3a03;
import java.util.Scanner;
public class ContaCorrente extends ContaBancaria {
private double saldo;
private double tarifa = 0.1; // tarifa de 10%
Scanner s = new Scanner(System.in);
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public double getTarifa() {
return tarifa;
}
public void setTarifa(double tarifa) {
this.tarifa = tarifa;
}
@Override
public void depositar(){
System.out.println("======== Opção de depósito ========");
System.out.println("Digite o valor que deseja depositar: ");
double valorDeposito = s.nextDouble();
this.saldo += valorDeposito;
System.out.println("Seu novo saldo é: " + this.saldo + " reais");
}
@Override
public void sacar(){
System.out.println("======== Opção de saque ========");
System.out.println("Digite o valor que deseja sacar: ");
double valorSaque = s.nextDouble();
if (valorSaque > this.saldo){
System.out.println("Valor indisponível para saque! Tente novamente!");
} else {
this.saldo -= valorSaque;
System.out.println("Seu novo saldo após o saque é: " + this.saldo + " reais");
}
}
@Override
public void consultarSaldo(){
System.out.println("======== Opção consultar saldo ========");
System.out.println("Seu saldo atual é: " + this.saldo + " reais");
}
public void cobrarTarifa(){
if (this.saldo > 0) {
System.out.println("======== Cobrança da tarifa ========");
double valorTarifa = this.saldo * this.tarifa;
this.saldo -= valorTarifa;
System.out.println("Valor cobrado da tarifa: " + valorTarifa + " reais");
System.out.println("Seu saldo atual após a tarifa será: " + this.saldo + " reais");
} else {
System.out.println("Não existe saldo para tarifa!");
}
}
}
package atvModulo3a03;
import java.util.Scanner;
public class MainContaBancaria {
public static void main(String[] args) {
ContaCorrente conta = new ContaCorrente();
Scanner s = new Scanner(System.in);
int opcao = 0;
while (opcao != 5) {
System.out.println("\n======== MENU ========");
System.out.println("Selecione uma das opções:");
System.out.println("1 - Consultar saldo.");
System.out.println("2 - Depositar um valor.");
System.out.println("3 - Sacar um valor.");
System.out.println("4 - Valor da tarifa mensal.");
System.out.println("5 - Sair.");
System.out.print("Opção: ");
opcao = s.nextInt();
switch (opcao) {
case 1:
conta.consultarSaldo();
break;
case 2:
conta.depositar();
break;
case 3:
conta.sacar();
break;
case 4:
conta.cobrarTarifa();
break;
case 5:
System.out.println("Processo finalizado! Saindo da conta.");
break;
default:
System.out.println("Opção inválida. Tente novamente!");
}
}
s.close();
}
}