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

Chamando Construtor em um método

Como chamar o construtor de uma classe a partir de um método qualquer da mesma classe ?

6 respostas
solução!

Oi Marcelo, tudo bom?

Perceba que para que o método esteja disponivel, você precisa chamar o construtor antes. Não é possivel chamar o construtor dentro do método.

Abraço!

Bons estudos.

Bom dia Marcelo,

Na realidade nem faz sentido fazer isso. O Construtor é o responsável por instanciar um Classe, devolvendo em tempo de execução um objeto representando aquela estrutura.

Ou seja, você estará em outra classe, em outro método, e dentro dele vai precisar este objeto, ai usará o construtor daquela classe. E a partir deste objeto poderá utilizar os atributos e comportamentos dele.

Espero que tenha ficado claro.

Abraços.

Então, mano. Depois de o objeto ter sido instanciado, não é possível fazer algo como:

void metodoQualquer() {
    this();
}

Obrigado.

O comando this servirá para referenciar coisas da própria classe, e principalmente usado em situações como os métodos setters:

private String nome;

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

O this aqui é usado para deixar claro que a atribuição do parâmetro nome vai para o atributo nome deste objeto. Isso só é necessário porque ambos tem o mesmo nome. Se fosse:

private String nome;

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

Nem precisaria usar o this. Dentro de um objeto do tipo Pessoa por exemplo, em um método dele, não faz sentido querer chamar o construtor dele novamente.

Várias pessoas que precisassem ser criadas ainda assim seria feito fora de um método da classe Pessoa.

Você pode chamar o construtor da própria classe a partir de um método estático, lembrando que toda vez que você chamar o construtor estará criando um novo objeto.

public class Teste{

    public void static chamaConstrutor(){
        //chama o construtor da classe.
        new Teste();
    }
}

O this é uma referência para o objeto da classe atual, você pode chamar this.atributo ou this.método, mas não pode chamar this();

Obrigado por todos os feedbacks.