Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exercício 9 Aula 5.

Bom dia pessoal.

O exercício 9, pede para que se faça uma ordenação através do nome.

Utilizando o método .compareTo fiz o seguinte código:

    @Override
    public int compareTo(Conta newConta) {
        return this.getNome().compareTo(newConta.getNome());
    }

Porém, na resposta do sistema , está da seguinte forma:

   @Override
        public int compareTo(Conta outra) {
            return this.nome.compareTo(outra.nome);
        }

Minha dúvida é saber quando eu devo utilizar o getNome(), ou a variável Nome em si.

Pelo que aprendi, o correto seria utilizar o getNome, devido ao encapsulamento, correto?

Porque, no exemplo, foi utilizado a variável direta?

2 respostas
solução!

Olá Rafael! Neste caso não há uma quebra de encapsulamento pois você está utilizando o atributo da sua classe dentro da própria classe. Veja que em nenhum momento você está "expondo" a classe Conta, pois todo o código está dentro da mesma, afinal uma Conta sabe que tem o atributo nome. Então, para este caso não é uma quebra de encapsulamento e pode usar como a resposta do exercício, creio até que seja mais vantajoso pois você não usaria um método sem necessidade.

Espero ter ajudado! Bons Estudos!

Entendi. Dentro da própria classe, o ideal seria utilizar o próprio atributo ao invés de utilizar um método. Obrigado.