Dúvida no uso do this

6 respostas
lucasmartins

Galera, tou lendo material sobre java
e ainda não consegui entender quando devo usar o this.(…)
para que serve?
Obrigado. E desculpe a ignorância de noob.

6 Respostas

Adaylon

O this serve para fazer referência a própria classe.

lucasmartins
mas tipo se eu tenho a classe carro

e tenho

meuCarro = new carro();

this.cor=vermelha;

eu vou estar atribuindo a cor vermelha como padrão da classe carro ou como cor do meuCarro?

evertonsilvagomesjav

"this" refere-se ao objeto que vc esta usando por exemplo:

public class Carro{

String cor;

static void main (String[] args){

Carro carro1 = new Carro();
carro1.getCor("vermelho");  // o this.cor la no método getCor seria o mesmo que vc estivesse fazendo carro1.cor = corPassadaNoMetodoMain

Carro carro2 = new Carro();
carro2.getCor("azul"); // // o this.cor la no método getCor seria o mesmo que vc estivesse fazendo carro2.cor = corPassadaNoMetodoMain


}

public void getCor(String corPassadaNoMetodoMain){

this.cor = corPassadaNoMetodoMain;
}

}
lucasmartins

Entendi amigo!
Obrigado.
Abrass.

B

O código acima compila sem problemas, mas sem querer ser chato mas já sendo…

O Amigo acima trocou o setter por getter, ou seja, na verdade o método para informar qual a cor do carro faria mais sentido se fosse setCor, e o método para retornar qual a cor da classe carro, aí sim o gerCor.

Abraços,

S

O this também pode ser usado no construtor da seguinte forma:

class SuaClasse {

SuaClasse() {
System.out.println("Construtor sem parametro.");
}

SuaClasse(String valor) {
this();
System.out.println("Você passou " + valor + " como parametro.);
}

public static void main (String[] args){
SuaClasse a = new SuaClasse("Teste");
}

}

Quando usado no construtor ele chama um outro construtor da mesma classe com os parametros passados lembrando que quando usado dessa forma o this deve estar na primeira linha do construtor.

Obs: Acabo de notar que o post acima do meu ressuscitou um tópico de 2010.

Criado 21 de março de 2010
Ultima resposta 24 de out. de 2013
Respostas 6
Participantes 5