fiz um teste.php para testar se tudo estava funcionando e acontece o seguinte erro:
Fatal error: Uncaught Error: Class 'Alura\Banco\Modelo\Conta\ContaPoupanca' not found in C:\Users\Julio Varella\Documents\PHP\OO-PHP\src\teste.php:8 Stack trace:
#0 {main} thrown in C:\Users\Julio Varella\Documents\PHP\OO-PHP\src\teste.php on line 8
Esse é meu teste.php:
<?php
use Alura\Banco\Modelo\Conta\{Conta, ContaPoupanca, Titular};
use Alura\Banco\Modelo\{Endereco};
require_once 'autoload.php';
$conta = new ContaPoupanca(
new Titular(
'411.059.294-41',
'Julio Varella',
new Endereco(
'Ourinhos',
'Vila S',
'NL',
'casa 11'
)
)
);
$conta->depositar(1000);
$conta->saca(200);
echo $conta->getSaldo();
essa é minha classe ContaPoupanca:
<?php
namespace Alura\Banco\Modelo\Conta;
class ContaPoupanca extends Conta
{
public function percentualTarifa(): float
{
return 0.03;
}
}
Essa é minha classe Conta:
<?php
namespace Alura\Banco\Modelo\Conta;
abstract class Conta
{
protected Titular $titular;
protected float $saldo;
protected static $numeroDeContas = 0;
public function __construct(Titular $titular)
{
$this->titular = $titular;
$this->saldo = 0;
self::$numeroDeContas++;
}
public function saca(float $valorASacar): void
{
$tarifaSaque = $valorASacar * $this->percentualTarifa();
$valorSaque = $valorASacar + $tarifaSaque;
if ($valorSaque > $this->saldo) {
echo "Saldo indisponível";
return;
}
$this->saldo -= $valorSaque;
}
public function depositar($valorADepositar): void
{
if($valorADepositar <= 0) {
echo "Deposite um valor positivo.";
return;
}
$this->saldo += $valorADepositar;
}
public function transferir($valorATransferir, Conta $contaDestino): void
{
if ($valorATransferir > $this->saldo){
echo "Saldo insuficiente.";
return;
}
$this->saca($valorATransferir);
$contaDestino->depositar($valorATransferir);
}
public function getSaldo()
{
echo $this->saldo;
}
abstract public function percentualTarifa(): float;
}
e assim está a organização das pastas: