Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

New DAte

    get data() {
        return new Date(this._data.getDate());
    }

Não entendi pq eu preciso criar uma outra instancia de Date pra chamar o getDate do _data que ja passei no construtor

1 resposta
solução!

É justamente esse ponto que é a questão crucial dessa parte. Se você retornar a mesma instância, quem acessar a instânciafora da sua classe conseguirá alterá-la. Em suma, você acha que esta tornando a propriedade privada, mas não.

Quando você retorna uma novo objeto Date baseado no Date original, se qualquer alterar esse Date fora da classe, não alterará o date encapsulado por ela. Isso se chama programação defensiva. Problemas como esse acontecem em linguagem que suportam passagem de parâmetros por referência, um conceito da programação.

Você chegou a fazer um teste? Tentou alterar a data da negociação? Se você não retornar uma nova data, você conseguirá mudar e não é isso que queremos, porque uma vez a negociação feita, ela não pode ser alterada.