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

Dúvida em relação ao construtor

Olá!

Assistindo a aula 4 "Listas Duplamente Ligadas", o professor cria um construtor da seguinte forma:

public Celula(Object elemento) {
        this(elemento, null);
    }

O uso dos parênteses após o this é novo para mim. Eu costumava ver algo como:

public Celula(Object elemento, Celula proximo) {
        this.elemento = elemento;
        this.proximo = proximo;
    }

Além disso, no vídeo, o professor cria esse mesmo construtor invertendo elemento, null:

public Celula(Object elemento) {
        this(null, elemento);
    }

Alguém poderia explicar sobre esse tipo de atribuição ou me indicar algum vídeo ou artigo que fale sobre?

2 respostas

Oie Marcelo, tudo bem contigo?

Esse this() serve para se referir a outro construtor na mesma classe, ou seja:

O this abaixo:

public Celula(Object elemento) {
        this(elemento, null); // faz a chamada de um construtor da mesma classe que consegue receber os paramêtros colocados entre ()
    }

Faz a chamada desse construtor aqui:

// Os paramêtros dentro do this do construtor anterior chegam como argumento para esse construtor:
public Celula(Object elemento, Celula proximo) {
        this.elemento = elemento;
        this.proximo = proximo;
    }

Se quiser ler um pouco sobre, achei um artigo em inglês e uma discussão no GUJ sobre esse tema, segue os links:

Espero ter ajudado, qualquer outra dúvida estarei por aqui :)

Bons estudos!

solução!

Oi Igor!

Fantásticas as explicações! Agora eu entendo a diferença entre o this e o this(). Muito obrigado!