| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2007 02:34:47
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Para que você não tenha que dar suporte a ele.
A parte de uma classde que pode ser sobrescrita numa subclasse é parte integrante da interface da classe e deve ter seu contrato de sobrescrita especificado exatamente como o contrato de uso de metodos normais.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2007 03:18:03
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
ViniGodoy wrote:
Rafael Nunes wrote:
Creio que não entendi bem o exemplo, o que exatamente ele deveria realizar que não está realizando?
O código do Thingol deveria trocar o valor dois dois Strings, mas ele não faz isso. Isso porque a função receberá 2 referências para as strings, mas elas são simplesmente cópias das referências originais.
Assim, alterar o valor dentro da função não refletirá em nada fora da função.
entendi agora o que ele queria e não funcionava. não o conceito, mas o propósito.. valeu vini
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2007 12:13:17
|
Rafael Nunes
Moderador
![[Avatar]](/images/avatar/d072677d210ac4c03ba046120f0802ec.png)
Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline
|
ViniGodoy wrote:
O código do Thingol deveria trocar o valor dois dois Strings, mas ele não faz isso. Isso porque a função receberá 2 referências para as strings, mas elas são simplesmente cópias das referências originais.
Assim, alterar o valor dentro da função não refletirá em nada fora da função.
Na verdade isso só vai funcionar porque Strings são imutáveis, e mesmo objetos sendo passados como cópia da referência, uma Sting modificada dentro de um método vai funcionar como se a passagem fosse de um tipo primitivo, não refletindo fora do método pois Strings são imutáveis.
Porém com outros tipos de objeto, as mudanças através da referência do parâmetro, vão refletir no objeto fora do método.
Por exemplo:
Neste caso será impresso 'leafaR'. Mesmo modificando o valor do objeto dentro do método, a mudança se refletirá no objeto Pessoa que foi criado antes do método.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2007 13:19:55
|
wellington7
JavaEvangelist
![[Avatar]](/images/avatar/b80d1ec3ddec44d03ab7b4d32a6ae480.jpg)
Membro desde: 16/03/2007 14:03:02
Mensagens: 333
Offline
|
urubatan wrote:tenha pro regra o seguinte, o único método estático da aplicação é o public static void main
para ter qualquer outro método static tu precisa de um ótimo motivo 
Bem, eu uso qnd quero ter acesso global a algum método de uma classe sem necessidade de instanciar a classe..
Com por exemplo os desenhos que faço na celula da jTable, apenas chamo
Desenho.fig1();
Desenho.fig2();
Desenho.fig3();
já que todas as figuras da classe Desenho sao "static final".
E quanto ao "final" estou começando a usar mais nos parametros que passo tb, para garantir que serao os mesmos parametros até o final do método (vai q eu esqueço e sobrescrevo algo.. ja aconteceu..rs)
|
"Faça por onde que eu te ajudarei"
Idéias que você deveria conhecer:
Lombok
SSCCE |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2007 15:09:24
|
bzanchet
Java Ninja
Membro desde: 18/05/2006 20:04:34
Mensagens: 256
Offline
|
cv wrote:
pcalcado wrote:...se sua classe não está preparada para trabalhar com uma versão polimórfica de um dado método faça-o final.
Pra que?
Como usar cinto de segurança... Ninguém pretende bater no próximo poste que encontrar. Mas nunca se sabe, "o inferno são os outros".
|
http://conceitua-se.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2007 13:31:54
|
wellington7
JavaEvangelist
![[Avatar]](/images/avatar/b80d1ec3ddec44d03ab7b4d32a6ae480.jpg)
Membro desde: 16/03/2007 14:03:02
Mensagens: 333
Offline
|
E sobre eu utilizar final em todos os parametros que passo e que não pretendo modificar, há alguma perda de desempenho?
A maior parte dos meus métodos eu passo parâmetros sem a intenção de modificá-los, neste caso é sempre vantagem receber os parâmetros como no código a seguir?
|
"Faça por onde que eu te ajudarei"
Idéias que você deveria conhecer:
Lombok
SSCCE |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2011 13:59:20
|
Mak
Debugger
Membro desde: 22/10/2008 22:13:38
Mensagens: 68
Offline
|
pcalcado wrote:Para que você não tenha que dar suporte a ele.
A parte de uma classde que pode ser sobrescrita numa subclasse é parte integrante da interface da classe e deve ter seu contrato de sobrescrita especificado exatamente como o contrato de uso de metodos normais.
Realmente estou a anos-luz desse cara em OO ....... eu até acho q entendi + ou - o q ele quis dizer, agora assimilar perfeitamente e trazer isso pro meu dia a dia ainda é um objetivo a se conquistar ... rsrs
|
|
|
 |
|
|