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

Usar this ou não

Quando reescrevi o método toString(), fiz da seguinte forma:

    @Override
    public String toString() {
        return "Aula: " + titulo;
    }

Não utilizei o this.titulo e o código rodou da mesma forma. Pergunto, qual a diferença entre utilizar this. ou não quando chamar os atributos?

2 respostas
solução!

Oi Natan! Boa pergunta! Vou responder em duas partes.

Primeiro, se usamos this.titulo, fica claro para quem lê que a variável é uma variável de instância e não uma variável local. Mas nesse exemplo que você deu, o this é opcional.

Agora, vou lhe mostrar um exemplo onde o this não é opcional:

public setNome(String nome) {
    nome = nome;
}

Supondo que há o atributo nome na classe, o que você acha que vai acontecer? O Compilador não sabe se você quer mudar o atributo da classe ou o valor da parâmetro do método. Vai rolar algo chamado shadowing. Ele vai fazer com que o parâmetro do método receba ele mesmo e não vai mudar o atributo da classe. Nesse caso, você é obrigado a usar this para orientar o compilador:

public setNome(String nome) {
    this.nome = nome;
}

Sendo assim, ao invés de ficar pensando se usa ou não this, você pode assumir usar this em todos os casos. Escreve um pouco mais, mas mantém um padrão no seu código e uma uniformidade.

Ficou claro?

Bastante esclarecedor Flavio, obrigado!