Olá, tudo bem?
Percebi que quando instanciamos um novo objeto a partir da ContaCorrente, cria-se um novo saldo para essa nova instância. Tentei identificar se havia algum problema no meu código até eu executar o código do professor que também obtive o mesmo comportamento. No caso, está certo esse comportamento? Eu deveria atribuir o valor do saldo do objeto conta no objeto contaCorrente se eu quiser ter os mesmos valores em ambos, certo?
package br.com.alura.screenmatch.exercicios.desafio3;
public class ContaBancaria {
protected double saldo;
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public void consultarSaldo(){
System.out.println("Seu saldo é de: R$" + getSaldo());
}
public void depositar(double valor) {
setSaldo(getSaldo()+valor);
System.out.println("Valor depositado! Seu novo saldo é de: R$" + getSaldo());
}
public void sacar(double valor) {
if (valor > getSaldo()){
System.out.println("Saldo insuficiente! Seu saldo é de: R$ " + getSaldo());
}else if(valor <= getSaldo()){
setSaldo(getSaldo()-valor);
System.out.println("Saque realizado com suceso! Seu saldo atual é de: R$ " + getSaldo());
}
}
}
package br.com.alura.screenmatch.exercicios.desafio3;
public class ContaCorrente extends ContaBancaria{
public void cobrarTarifa(double tarifa){
setSaldo(getSaldo()-tarifa);
}
}
package br.com.alura.screenmatch.exercicios.desafio3;
public class TesteContaBancaria {
public static void main(String[] args) {
ContaBancaria conta = new ContaBancaria();
conta.depositar(100000.0);
conta.sacar(23000.0);
conta.sacar(23000.0);
conta.depositar(100.0);
conta.consultarSaldo();
ContaCorrente contaCorrente = new ContaCorrente();
contaCorrente.consultarSaldo();
contaCorrente.depositar(100.0);
contaCorrente.cobrarTarifa(7.20);
contaCorrente.sacar(9000.0);
contaCorrente.consultarSaldo();
}
}