No exercicio de conta bancaria, percebo que estamos ultilizando protect no atributo saldo, porém dessa maneira eu poderia apenas setar um valor de saldo, e não é isso que queremos, afinal temos um método deposito para isso, Numa situação real a conta bancaria se inicia zerada e apenas depositando um valor temos saldo na conta, portanto Sugiro que ultilizemos o atributo private e para descontarmos a tarifa mensal na conta corrente ultilizemos o metodo sacar, para descontar o valor, lembrando que o metodo sacar já retorna o valor de saldo na classe mãe então o saldo será atualizado. Assim no metodo principal aonde declaremos uma new ContaCorrente, não podemos simplesmente fazer : conta.saldo = 1000. Pois o saldo é privado apenas atraves de um deposito será incrementado o saldo.
package ListaExercicios;
public class ContaBancaria {
private double saldo = 0;
public double depositar(double valor){
if (valor<0){
System.out.println("Valor não pode ser negativo");
}else{
this.saldo += valor;
System.out.println("Deposito realizado com sucesso.");
System.out.println("Saldo atual: " + saldo);
}
return saldo;
}
public double sacar(double valor){
if(valor>saldo){
System.out.println("Saldo insuficiente");
}else {
saldo -= valor;
System.out.println("Saque realizado com sucesso!");
System.out.println("Seu saldo atual é: " + saldo);
}
return saldo;
}
public void consultarSaldo(){
System.out.println("Saldo atual: " + saldo);
}
}
package ListaExercicios;
public class ContaCorrente extends ContaBancaria {
private int tarifaMensal = 10;
public double cobrarTarifaMensal(){
return sacar(tarifaMensal);
}
}