Boa noite, estava dando uma olhada na classe e tive a seguinte dúvida, oque difere os métodos normais (ou só métodos não sei), dos métodos setters? Sendo que ao meu ver os dois fazem as mesma coisas, setam atributos da instância?
class Conta {
private $cpfTitular;
private $nomeTitular;
private $saldoTitular;
// MÉTODOS NORMAIS??
public function sacar(float $valorASacar) {
if($valorASacar > $this->saldoTitular) {
echo 'saldoTitular indisponível' . '<br />';
} else {
$this->saldoTitular -= $valorASacar;
}
}
public function depositar(float $valorADepositar) {
if($valorADepositar < 0) {
echo 'Valor a depositar precisa ser positivo' . '<br />';
} else {
$this->saldoTitular += $valorADepositar;
echo 'Você acaba de depositar o valor de R$' . $valorADepositar . ' em sua conta.' . '<br />';
}
}
public function transferir(float $valorATransferir, Conta $contaDestino) {
if($valorATransferir > $this->saldoTitular) {
echo "saldoTitular indisponivel" . '<br />';
} else {
$this->sacar($valorATransferir);
$contaDestino->depositar($valorATransferir);
}
}
// GETTERS
public function recuperarCpfTitular() {
return $this->cpfTitular;
}
public function recuperarNomeTitular() {
return $this->nomeTitular;
}
public function recuperarSaldoTitular() {
return $this->saldoTitular;
}
// SETTERS
public function defineCpfTitular(string $cpf) {
$this->cpfTitular = $cpf;
}
public function defineNomeTitular(string $nome) {
$this->nomeTitular = $nome;
}
}