O que é o "this"  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Hahu
What is classpath?

Membro desde: 27/07/2006 14:17:28
Mensagens: 9
Offline

Fala Guj,
Boa tarde a todos,

Galera, to com essa dúvida ..eee eu não sei se já responderam aqui no forum..mas ..lá vai ..para que serve o "this" na class?

exp1:
// mutator method
public void setCpf(String cpf)
{
this.cpf = cpf;
}


exp2:
// mutator method
public void setCpf(String c)
{
cpf = c;
}


Ela faz o que? identifica o que ? ou referencia o q?

Abs de seu amigo Hahu

eduveks
GUJ Ranger
[Avatar]

Membro desde: 19/04/2005 07:45:40
Mensagens: 831
Localização: Lisboa - Portugal
Offline

this é a referência da própria class.

serve para:



Assim entende melhor?

Quando as variaveis tem nomes diferentes, ai não precisa de usar o this.

Mas quando existe duas variáveis com o mesmo nome, para distinguir qual é a variável externa e qual é a variável interna usa-se o this para referenciar a variável externa...

Assim o this.cpf se refere ao cpf private String cpf



Sakou ?

http://www.cajuscript.org
http://eduveks.blogspot.com
[Email] [WWW]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

O this é para indicar explicitamente que você está usando algo do objeto da classe.

Por exemplo (atenção às cores - usei tracinhos ao invés de espaços pois não usei a formatação do GUJ):

public class Teste {
----private String cpf;
----public setCpf( String cpf ) {
--------this.cpf = cpf;
----}
}


Nesse exemplo (igual ao seu), usa-se o this para indicar que deve-se atribuir ao campo cpf da classe Teste o valor de cpf que é parâmetro do método setCpf. Como o Netuno disse, se fossem variáveis com nomes diferentes não seria necessário utilizar o this. O this nesse caso se faz necessário pois as variáveis tem o mesmo nome. Isso ai é conhecido com shadowing, ou seja, vc "sombreia" a variável de escopo de instância ou de classe com a variável de escopo do método.

Como falei, o this sempre e usado para fazer referência explícita a algum membro da classe.

Até mais!

This message was edited 2 times. Last update was at 22/11/2007 12:14:02


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
spycall
JavaTeenager
[Avatar]

Membro desde: 26/04/2005 14:29:59
Mensagens: 189
Localização: São paulo
Offline

ele referencia a própria classe, por exemplo:



se vc tem um metodo que recebe como parametro um objeto, e nesse objeto vc chama esse metodo vc passa this;

No mundo existem 10 tipos de pessoas, as que conhecem e as que não conhecem binário.
[MSN]
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 3191
Localização: Rio de Janeiro
Offline

nunca é demais lembrar

this é uma referência à instancia atual do objeto e, com ela, vc consegue acessar atributos e, também, métodos. this não funciona sobre atributos estáticos (pra isso vc utiliza o nome da classe), muito menos vc pode utiliza-lo em métodos estaticos (afinal eles não estão no contexto de instância). seria um erro tentar usar this a partir do método main, por exemplo.

this também pode ser utilizado para chamar o construtor da sua classe


http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
Hahu
What is classpath?

Membro desde: 27/07/2006 14:17:28
Mensagens: 9
Offline

Amigos,

Agradeço por mtos de vcs responderem a minha dúvida!

Nossa...graças a vcs e consegui resolver está questão..obrigado!

Abs de seu amigo Hahu
Que Deus abençõe a todos!
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team