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

Ao chamar um método dentro de outro método, ambos de mesma classe, é opcional o this?

Gostaria de saber se é opcional o uso do this neste caso:

public boolean saca(double valor) {
        if(this.saldo >= valor) {
            this.saldo -= valor;
            return true;
        }

        return false;
    }

    public boolean transfere(double valor, Conta destino) {

        if(this.saca(valor)) {
            destino.deposita(valor);
            return true;
        }

        return false;
    }

No caso, no método acima (transfere), usei um "this.saca(valor)". Queria saber se é comum usarem desta forma ou pode-se omitir este this sem nenhum problema pra todos os casos. Ele rodou tanto com, como sem o this, por isso a dúvida.

3 respostas

Oi Renato,

nesse cenário é opcional, o this é usado para referenciar ao próprio objeto onde o this está sendo usado, por exemplo para dizer que é um atributo da classe ao invés de uma variável local

Entendi! Então, teria algum caso onde seria necessário chamar um método com this?

solução!

A razão mais comum para usar o this é porque um campo tem o mesmo nome do parâmetro de um método:

public class Point {
    public int x = 0;
    public int y = 0;

    //constructor
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

nesse caso quando você usa o this é referente à variavel da classe e não o argumento do método