Oi, Renan, como vai?
Para resolver este problema, algumas modificações terão que ser realizadas no código, são elas:
1 - Nas linhas 24 e 25 do arquivo banco.php, o acesso aos métodos retornaNome()
e retornaCpf()
terão que ser realizados a partir do atributo titular
das contas, já que a classe Conta
não possui mais esses métodos, segue o código para fazer isso:
echo $primeiraConta->titular->retornaNome().PHP_EOL;
echo $primeiraConta->titular->retornaCpf().PHP_EOL;
2 - Para conseguir acessar o atributo titular
das contas, fora do arquivo da classe Conta
, este atributo terá que se tornar público, segue o código para fazer isso:
class Conta{
public $titular;
public $saldo;
private static $numeroDeContas = 0;
3 - Para conseguir acessar os atributos nome
e cpf
da classe Titular
, estes atributos terão que se tornar públicos, como a classe Titular
herda da classe Pessoa
, temos que fazer a alteração da visibilidade dos atributos na classe Pessoa
, segue o código para fazer isso:
class Pessoa{
public $nome;
public $cpf;
4 - Por último, no método retornaCpf()
da classe Pessoa
existe um erro, será preciso trocar CPF
de maiúsculo para minúsculo, segue o código do método corrigido:
public function retornaCpf(): string
{
return $this->cpf->recuperaNumero();
}
Seguindo todos esses passos, o código funcionará como o esperado.
Espero que essa explicação te auxilie.
Caso tenha quaisquer comentários ou dúvidas a respeito de alguma aula ou desafio, pode postar aqui no fórum que vamos te responder!
Abraços e bons estudos!