Normalmente eu uso this
apenas em construtores.
Entendo que é usado para identificar a variável de parâmetro (usando this.something
), se tiver o mesmo nome com uma variável global.
No entanto, não sei qual é o verdadeiro significado do this
Java e o que acontecerá se eu usar this
sem o dot ( .
).
Respostas:
this
refere-se ao objeto atual.Cada método não estático é executado no contexto de um objeto. Então, se você tem uma classe como esta:
Em seguida, chamando
frobnicate()
onnew MyThisTest()
imprimiráTão eficazmente você o usa para várias coisas:
fonte
main
método é necessário. Se eu adicionar o método principal, então eu tenho que chamar a partir daí. E qualquer tentativa de chamar frobnicate () dentro de main diz que você não pode chamar uma referência não estática de dentro de uma estática. E remover estática demain
retorna o erro novamente, que nenhum método principal foi encontrado. Por favor explique.this.
funciona. Meu entendimento é quethis.
permite que você chame um método ou variável exclusivo da versão instanciada da classe, permitindo que exista outra versão do método ou variável que é chamada sem chamar.this.
Em uma chamada simples,Test.class
eu tenho dois métodos:public static void main()
epublic Test()
eu não pode passar informações entre os métodos porquemain
é estático e os construtores não podem se tornar estáticos. Devo postar como uma nova pergunta?static
basicamente significa que você não precisa de uma instância da classe para chamá-lo e que não terá acesso athis
ele.A seguir, copie e cole a partir daqui , mas explica muito bem todos os diferentes usos da
this
palavra-chave:Definição: A
this
palavra-chave Java é usada para referenciar a instância atual do método no qual é usada.A seguir estão as maneiras de usar isso:
Para indicar especificamente que a variável de instância é usada em vez da variável estática ou local. Isso é,
Aqui, isso se refere à variável de instância. Aqui a precedência é alta para a variável local. Portanto, a ausência do
this
denota a variável local. Se a variável local que é o nome do parâmetro não for igual à variável de instância, independentemente dethis
ser usada ou não, isso indica a variável de instância.This
é usado para referir os construtoresIsso chama o construtor da mesma classe java que possui dois parâmetros.
This
é usado para passar a instância java atual como parâmetroSemelhante ao acima, isso também pode ser usado para retornar a instância atual
Nota: Isso pode levar a resultados indesejados enquanto usado em classes internas nos dois pontos acima. Como isso se refere à classe interna e não à instância externa.
This
pode ser usado para obter o identificador da classe atualEmbora isso possa ser feito por
Como sempre,
this
está associado à sua instância e isso não funcionará em métodos estáticos.fonte
Para ser completo,
this
também pode ser usado para se referir ao objeto externofonte
this
é o que eu estava procurando! ;)super
Refere-se à instância atual de um objeto específico, para que você possa escrever algo como
Um caso de uso comum de
this
é evitar sombreamento. Veja o seguinte exemplo:No exemplo acima, queremos atribuir o membro do campo usando o valor do parâmetro Como eles compartilham o mesmo nome, precisamos de uma maneira de distinguir entre o campo e o parâmetro.
this
permite acessar membros dessa instância, incluindo o campofonte
No Swing, é bastante comum escrever uma classe que implemente
ActionListener
e adicione a instância atual (ou seja, 'this') como um ActionListener para componentes.fonte
É "uma referência ao objeto no contexto atual" efetivamente. Por exemplo, para imprimir "este objeto", você pode escrever:
Observe que o uso de "variável global" está um pouco desabilitado ... se você estiver usando
this.variableName
, por definição, não é uma variável global - é uma variável específica para essa instância específica.fonte
Citando um artigo em programming.guide:
this
possui dois usos em um programa Java.1. Como referência ao objeto atual
A sintaxe nesse caso geralmente se parece com
Este tipo de uso é descrito aqui: A referência 'this' (com exemplos)
2. Para chamar um construtor diferente
A sintaxe nesse caso normalmente se parece com
Este tipo de uso é descrito aqui: esta (…) chamada do construtor (com exemplos)
fonte
Refere-se à instância na qual o método é chamado
fonte
A palavra-chave this é usada para referenciar a variável atual de um bloco, por exemplo, considere o código abaixo (apenas um exemplo, então não espere o código JAVA padrão):
É isso aí. a saída será "2". Se não usamos a palavra - chave this , a saída será: 0
fonte
Os objetos têm métodos e atributos (variáveis) derivados de classes, para especificar quais métodos e variáveis pertencem a um objeto específico que a
this
palavra reservada é usada. no caso de variáveis de instância, é importante entender a diferença entre parâmetros implícitos e explícitos. Dê uma olhada nafillTank
chamada para oaudi
objeto.O valor entre parênteses é o parâmetro implícito e o objeto em si é o parâmetro explícito, métodos que não possuem parâmetros explícitos, usam parâmetros implícitos, o
fillTank
método possui um parâmetro explícito e implícito.Vamos dar uma olhada no
fillTank
método naCar
classeNesta classe, temos uma variável de instância "tank". Pode haver muitos objetos que usam a variável de instância tank, para especificar que a variável de instância "tank" seja usada para um objeto em particular; no nosso caso, o objeto "audi" que construímos anteriormente, usamos a
this
palavra-chave reservada. por exemplo, variáveis, o uso de 'this' em um método indica que a variável de instância, no nosso caso "tank", é variável de instância do parâmetro implícito.O compilador java adiciona automaticamente a
this
palavra reservada para que você não precise adicioná-la, é uma questão de preferência. Você não pode usarthis
sem um ponto (.) Porque essas são as regras do java (a sintaxe).Em suma.
this
uma variável de instância em um método indica que a variável de instância pertence ao parâmetro implícito ou que é uma variável de instância do parâmetro implícito.this
não pode ser usado sem um ponto (.), isso é sintaticamente inválidothis
também pode ser usado para distinguir entre variáveis locais e variáveis globais que têm o mesmo nomethis
palavra reserva também se aplica aos métodos, para indicar que um método pertence a um objeto específico.fonte
Variáveis de instância são comuns a todos os objetos que você está criando. digamos, existem duas variáveis de instância
se você notou o código acima, iniciamos três objetos e três estão chamando o método SetMyInstanceValues. Como você acha que a JVM atribui corretamente os valores para cada objeto? existe o truque, a JVM não verá esse código como é mostrado acima. em vez disso, verá o código abaixo;
fonte
(Eu sei que estou atrasado, mas ela está sendo a boi sorrateira que você nunca me viu)
O presente palavra chave na maioria das linguagens de programação orientada a objetos, se não todas, significa que é uma referência à instância atual do objeto dessa classe. É essencialmente a mesma coisa que chamar esse objeto de fora do método pelo nome. Provavelmente isso não fazia sentido, tão pouco elaborado:
Fora da classe, para chamar algo nessa instância do objeto, por exemplo, digamos que você tenha um objeto chamado object e que deseje obter um campo que precisaria usar
Digamos, por exemplo, que você esteja tentando acessar object.field de dentro da sua classe, digamos, seu construtor, por exemplo, você poderia usar
A palavra - chave this substitui essencialmente a palavra - chave do nome do objeto ao ser chamada dentro da classe. Geralmente, não há muito motivo para fazer isso fora de se você tiver duas variáveis com o mesmo nome, uma das quais sendo um campo da classe e a outra apenas sendo uma variável dentro de um método, isso ajuda a decifrar entre as duas . Por exemplo, se você tem o seguinte: (Hah, entendeu? Isso ? Hehe .... só eu? Ok :( vou embora agora)
Isso causaria alguns problemas, o compilador não seria capaz de saber a diferença entre a variável Name definida nos parâmetros para o construtor e a variável Name dentro das declarações de campo da sua classe ', para que, em vez disso, atribuísse o parâmetro Name a .. .. o valor do parâmetro Name que não faz nada benéfico e literalmente não tem propósito. Esse é um problema comum que a maioria dos programas mais recentes faz e eu também fui vítima. De qualquer forma, a maneira correta de definir esse parâmetro seria usar:
Dessa forma, o compilador sabe que a variável Name que você está tentando atribuir faz parte da classe e não parte do método e a atribui corretamente, o que significa que atribui o campo Name ao que você colocar no construtor.
Para resumir, ele essencialmente faz referência a um campo da instância de objeto da classe em que você está trabalhando, portanto, é a palavra-chave "this", significando que é esse objeto ou essa instância. É uma boa prática usar isso ao chamar um campo da sua classe, em vez de apenas usar o nome para evitar possíveis erros difíceis de encontrar, pois o compilador passa por cima deles.
fonte
Uma rápida pesquisa no Google trouxe esse resultado: http://xahlee.org/java-a-day/this.html
Praticamente a palavra-chave "this" é uma referência ao objeto atual (ele mesmo).
fonte
this
é uma referência ao objeto atual: http://download.oracle.com/javase/tutorial/java/javaOO/thiskey.htmlfonte
isso pode ser usado dentro de algum método ou construtor.
Retorna a referência ao objeto atual.
fonte
Isso se refere ao objeto em que você está "no momento". Em outras palavras, isso se refere ao objeto receptor. Você usa isso para esclarecer a qual variável você está se referindo. Página Java_whitepaper: 37
No código de exemplo acima, this.x / this.y refere-se à classe atual que é a variável Point xey, onde (double x, double y) são valores duplos passados de uma classe diferente para atribuir valores à classe atual.
fonte
Eu também estava procurando a mesma resposta e, de alguma forma, não conseguia entender o conceito claramente. Mas finalmente entendi a partir deste link
Esta é uma palavra-chave em Java. Que pode ser usado dentro do método ou construtor da classe. Funciona como uma referência a um objeto atual cujo método ou construtor está sendo chamado. essa palavra-chave pode ser usada para referenciar qualquer membro do objeto atual de dentro de um método de instância ou de um construtor.
Verifique os exemplos no link para um entendimento claro
fonte
Se as variáveis de instância são iguais às variáveis declaradas no construtor, usamos "this" para atribuir dados.
Espero que isto ajude.
fonte
Em Java "isto" é uma variável predefinida. Se usarmos "this" no método, significa que estamos obtendo a referência (endereço) do objeto em execução no momento. Por exemplo.
this.age ---> age do objeto em execução no momento.
fonte
Gostaria de compartilhar o que entendi dessa palavra-chave. Esta palavra-chave tem 6 usos em java da seguinte maneira: -
1. Pode ser usado para se referir à variável de classe atual. Vamos entender com um código. *
Vamos entender o problema se não usarmos essa palavra-chave pelo exemplo abaixo:
Resultado:-
No exemplo acima, parâmetros (argumentos formais) e variáveis de instância são os mesmos. Portanto, estamos usando essa palavra-chave para distinguir variável local e variável de instância.
resultado:
2. Para chamar o método de classe atual.
Resultado:
3. para chamar o construtor de classe atual. É usado para encadeamento de construtores.
Resultado:
4. passar como argumento no método.
Resultado:
5. passar como argumento na chamada do construtor
Resultado:-
6. para retornar a instância da classe atual
Resultado:-
fonte