| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2008 14:21:53
|
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2008 14:27:49
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/12/2008 13:53:04
|
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...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/12/2008 03:10:54
|
betoslayer
Debugger
![[Avatar]](/images/avatar/8c0f210dc24f021fbfc4b912fd41a8aa.png)
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
|
|
|
 |
|
|