Explicação do metodo equals();  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
dejota008
HelloWorld

Membro desde: 28/11/2008 14:17:43
Mensagens: 14
Localização: São Paulo
Offline

por gentileza alguem pode me explicar detalhadamente estas 2 linhas marcadas no metodo equals(); e como ele funciona?

This message was edited 1 time. Last update was at 08/12/2008 13:48:45

letakeda
Entusiasta Java

Membro desde: 08/08/2005 11:49:41
Mensagens: 16
Offline

Pocure sempre colocar o codigo entra as tags de Code, disponibilizadas pelo forum....

Assim:



Este metodo recebe um objeto... da classe Object... tudo parte dele.... depois se ContaCorrente pertence (instanceof) a obj... que você passou E ContaCorrente.getAgencia (metodo que nao sei exatamente o que retorna) é igual (equals significa que está apontando para o mesmo lugar na memoria, ou seja, voce nao pode usar == para objetos) ... se ambas as condiçoes acima forem verdadeiras... retorna true, senao false.

Nao sei se fui claro... mas ... qualquer coisa fala ae

Leandro Takeda
dejota008
HelloWorld

Membro desde: 28/11/2008 14:17:43
Mensagens: 14
Localização: São Paulo
Offline

letakeda wrote:Pocure sempre colocar o codigo entra as tags de Code, disponibilizadas pelo forum....

Assim:



Este metodo recebe um objeto... da classe Object... tudo parte dele.... depois se ContaCorrente pertence (instanceof) a obj... que você passou E ContaCorrente.getAgencia (metodo que nao sei exatamente o que retorna) é igual (equals significa que está apontando para o mesmo lugar na memoria, ou seja, voce nao pode usar == para objetos) ... se ambas as condiçoes acima forem verdadeiras... retorna true, senao false.

Nao sei se fui claro... mas ... qualquer coisa fala ae


A respeito da TAG CODE, já comecei a usar.
aprendi bem com a sua explicação amigo...
betoslayer
Debugger
[Avatar]

Membro desde: 13/04/2008 16:18:39
Mensagens: 51
Offline

letakeda wrote:
Este metodo recebe um objeto... da classe Object... tudo parte dele.... depois se ContaCorrente pertence (instanceof) a obj... que você passou E ContaCorrente.getAgencia (metodo que nao sei exatamente o que retorna) é igual (equals significa que está apontando para o mesmo lugar na memoria, ou seja, voce nao pode usar == para objetos) ... se ambas as condiçoes acima forem verdadeiras... retorna true, senao false.

Nao sei se fui claro... mas ... qualquer coisa fala ae





Letakeda voce esta totalmente equivocado, e explicando tudo errado pro garoto. O método equal não tem nada a ver com endereço de mémoria, e o operador "==" pode ser usado sim para comparar objetos. Vou explicar corretamente a questao.

Primeiro: instanceof verifica se um objeto passa na relação é um para aquela classe ( ou seja, se o objeto é um tipo daquela classe diretamente ou por herança)

Segundo: o método equals significa se um objeto é signifcativamente equivalente ao passado pelo parametro do metodo, ou seja, nao tem nada a ver com endereço de memoria iguais. Por exemplo na classe String o metodo equals será true se elas tiverem o mesmo valor, mas elas podem ter endereços de memoria diferentes. O metodo equals de um objeto dog pode retornar true para um objeto cat, mesmo se forem objetos de classes diferentes, ou seja, vai depender do que o programador da classe entender o q é significativo para tornar um objeto seu equivalente a outro e isso independente do endereço de memoria. Agora, se o programador nao criar um metodo equals (sobrescrevendo o metodo equals da classe Object), aí o equals so retornará true se os objetos tiverem o mesmo endereço de memória. Algumas classes ja sobrescrevem o metodo equals por padrao, é o caso da classe String de das classes wrappers. A subscrição do metodo equals é muito importante para fazer ordernar arrays ou listas e tambem parar colocar objetos em tabelas hash.

Terceiro: o operador "==" retorna true sempre que os objetos se referirem a um mesmo endereço na memória. Ou seja nesse caso se der true na comparação eles são realmente o mesmo objeto. Enquanto que no equals eles podem ser o mesmo objeto ou objeto diferentes.

Luis Roberto Coimbra Nogueira
Sun Certified Java Programmer 1.5
Sun Certified Web Component Developer 1.5
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team