index.php
<?php
require_once 'autoload.php';
use Alura\Models\Endereco;
$endereco = new Endereco('Queimadas', 'Centro', 'Rua Francisco Salles', '02');
$endereco->cidade = 'São Domingos';
echo $endereco->cidade;
Endereco.php
<?php
namespace Alura\Models;
class Endereco
{
private string $cidade;
private string $bairro;
private string $rua;
private string $numero;
public function __construct(string $cidade, string $bairro, string $rua, string $numero)
{
$this->cidade = $cidade;
$this->bairro = $bairro;
$this->rua = $rua;
$this->numero = $numero;
}
public function recuperaCidade (): string
{
return $this->cidade;
}
public function recuperaBairro (): string
{
return $this->bairro;
}
public function recuperaRua (): string
{
return $this->rua;
}
public function recuperaNumero (): string
{
return $this->numero;
}
public function __get($nomeAtributo)
{
$metodo = "recupera".ucfirst($nomeAtributo);
return $this->$metodo();
}
public function __set($nomeDoAtributo, $valor)
{
$this->$nomeDoAtributo = $valor;
}
public function __toString(): string
{
return "{$this->recuperaCidade()} | {$this->recuperaRua()}, {$this->recuperaNumero()} - {$this->recuperaBairro()}";
}
}