Duas duvidas usando this e construtor de classe

Estou um pouco confuso em relacao ao usu do recurso this !! Para que serve e quando posso usalo

outra duvida e em relacao ao uso de construtores de classe. por exemplo:

public class Gata{…

public Gata{…}

}

Por que isso???

Pode me ajudar??? :oops:

1 curtida

Vamos ver se posso te ajudar . . .

O operador this é usado quando queremos no referenciar a um membro da própria classe por exemplo:

class Aluno {
    private String nome;

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

Neste exemplo acima temos um método que troca o nome do aluno, repare que esse método recebe um parâmetro nome, esse parâmetro tem o mesmo nome do atributo da classe Aluno, para informarmos ao compilador que queremos setar o atributo da classe Aluno, usamos o operador this. O operador this direrencia o parâmtro recebido no método do atributo declarado em nossa classe.

Podemos usar o operador this em outros casos tbem, como por exemplo para invocar um construtor ou um método da própria classe.


class Aluno {
    String nome;
    int idade;

    //primeiro construtor
    public Aluno(String nome, int idade) {
        this.nome = nome;
        this.idade = idade;
    }

    //segundo construtor
    public Aluno(int idade) {
        this("", idade);
    }
}
    

No exemplo acima temos dois construtor, no caso de criarmos um objeto passando apenas a idade, o segundo construtor será invocado, que por sua vez irá invocar o primeiro construtor passando uma String vazia para o nome e a idade informada.

Bom acho que vc já deve ter sacado o lance do construtor. Bom ele server para inicializar o nosso objeto qdo criamos um objeto: new …

Um detalhe interessante é que toda classe possui no mínimo um construtor, mesmo que vc não defina um, neste caso o compilador irá cria r um construtor default sem parametros:

class Aluno {
    //construtor default, não possui parametros
    public Aluno() { }
}

Espero que tenha entendido.

1 curtida

O codigo contido no construtor eh executado no momento em que voce cria uma instancia da classe. Ou seja,

public class Teste {
    public Teste() {
        System.out.println("aaaa");
    }
}

faca um programa que instancie Teste e veja que eh gerado o output… agora, se vc tirar o codigo do construtor, ou nao ter construtor algum, nada sera executado no momento da criacao.

“this” eh a referencia para a tua propria classe… Imagine que vc ta dentro da TUA casa e pede pro teu irmao pegar a cadeira… o que ele vai fazer? vai ir ate a sala e pegar a cadeira. Isso eh o “this”.
Agora, se vcs estivessem na rua e pedisse pro teu irmao pegar a cadeira, teria q dizer “meu, vai la e pega a cadeira da casa tal”… essa “casa tal” seria de onde ele iria buscar as coisas, ou seja a instancia do objeto.

Rafael