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

[Dúvida] Uso do THIS. em JAVA

Bom dia! Estava realizando o desafio do curso "Java: aplicando a orientação a objetos" e sobreveio o seguinte código:

package br.com.alura.minhasmusicas.modelos;

public class Podcast extends Audio{
    private String apresentador;
    private String descricao;

    public String getApresentador() {
        return apresentador;
    }

    public void setApresentador(String apresentador) {
        this.apresentador = apresentador;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    @Override
    public int getClassificacao() {
        if (this.getTotalCurtidas() > 500){
            return 10;
        }else {
            return 8;
        }
    }
}

Fiquei com dúvidas na última parte:

@Override
    public int getClassificacao() {
      **  if (this.getTotalCurtidas() > 500){**
            return 10;
        }else {
            return 8;
        }
    }

Por que no "if" foi usado o "THIS.getTotalCurtidas" em vez de apenas "getTotalCurtidas" se não existe parâmetro chamado "getTotalCurtidas"?

Desde já, agradeço a atenção ;)

2 respostas
solução!

Olá Rafaele, tudo bem?

No Java, a palavra-chave this é uma referência à instância atual do objeto. Ou seja, ela é usada para se referir à instância atual da classe. No seu código, this.getTotalCurtidas() está chamando o método getTotalCurtidas() da instância atual da classe Podcast.

A razão pela qual usamos this aqui, mesmo que não haja um parâmetro chamado getTotalCurtidas, é para deixar explícito que estamos nos referindo ao método da instância atual da classe. Embora o Java permita que você omita o this quando não há ambiguidade (como é o caso aqui), muitos programadores preferem usá-lo para deixar claro que estão se referindo a um campo ou método da instância atual.

Por exemplo, se tivéssemos um parâmetro no método com o mesmo nome de um campo da classe, precisaríamos usar this para distinguir entre o campo da classe e o parâmetro do método. Mas mesmo quando não há tal conflito, usar this pode tornar o código mais fácil de ler e entender, especialmente para outros desenvolvedores que possam estar lendo ou mantendo o código.

Espero ter esclarecido e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Muuuito obrigada!!!