| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 13:12:23
|
evil.hunter
Entusiasta Java
![[Avatar]](/images/avatar/f4901fe9f7579de134a23723831738ac.png)
Membro desde: 16/03/2007 10:23:05
Mensagens: 23
Localização: Brasília, DF
Offline
|
Boa tarde a todos, tenho a seguinte duvida. Eu tenho a classe porta:
Também tenho a classe casa:
Preciso criar um metodo que some e me retorne quantas portas eu tenho abertas...
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 13:23:53
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
E qual a dúvida?
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 13:33:39
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 13:42:12
|
themasta
Entusiasta Java
![[Avatar]](/images/avatar/854b68b3c6c3e69b52672108c5a99010.jpg)
Membro desde: 21/08/2007 16:38:28
Mensagens: 22
Offline
|
seria interessante que você guardasse as portas da casa num array de portas.
no método de contar portas abertas você recebe o array de portas
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 14:22:22
|
rmarin
JavaEvangelist
![[Avatar]](/images/avatar/46e0eae7d5217c79c3ef6b4c212b8c6f.jpg)
Membro desde: 13/07/2005 09:14:45
Mensagens: 360
Localização: São Paulo
Offline
|
Este objeto Casa deveria possuir uma lista de portas, não?
Ou ainda melhor:
Deste modo seria muito mais fácil efetuar a iteração sobre os elementos da casa, sejam portas ou janelas. Além disso, a quantidade de elementos não é fixa, podemos ter n portas...
|
Roberto Marin
__________________________________________
Odeio auto-nerds! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 15:43:04
|
evil.hunter
Entusiasta Java
![[Avatar]](/images/avatar/f4901fe9f7579de134a23723831738ac.png)
Membro desde: 16/03/2007 10:23:05
Mensagens: 23
Localização: Brasília, DF
Offline
|
O problema é o seguintes, estou seguindo a apostila da caelum. Nesta parte que estou ainda não me foi apresentado array's. Então eu pensei que não é pra utilizar. So que nao vi uma maneira de fazer isso sem utilizar array...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 16:14:13
|
gomesrod
GUJ Ranger
![[Avatar]](/images/avatar/5de6755473dc988fe6c7db81f26a53ac.jpg)
Membro desde: 11/05/2007 19:46:22
Mensagens: 901
Offline
|
Tudo bem, os arrays não são necessários nesse problema. O pessoal só usou array para ficar mais facil de aumentar a casa depois (mania de programador Java ).
Pense na sua casa... o que você faria para verificar quantas portas estão abertas? Olharia uma por uma, se está aberta você conta, se está fechada não conta. É mais ou menos isso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 16:19:08
|
dmarcosm
JavaTeenager
Membro desde: 27/03/2006 10:07:05
Mensagens: 177
Localização: Goiânia/GO
Offline
|
Ora... se você sabe que a casa tem 3 portas fixas, por quê precisa de um array ou list?!
=]
This message was edited 1 time. Last update was at 25/09/2007 16:19:42
|
Diego Miranda
Analista\Desenvolvedor
"If history is to change, let it change. If the world is to be destroyed, so be it. If my fate is to die, I must simply laugh!" - Magus |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 17:27:06
|
rmarin
JavaEvangelist
![[Avatar]](/images/avatar/46e0eae7d5217c79c3ef6b4c212b8c6f.jpg)
Membro desde: 13/07/2005 09:14:45
Mensagens: 360
Localização: São Paulo
Offline
|
dmarcosm wrote:Ora... se você sabe que a casa tem 3 portas fixas, por quê precisa de um array ou list?!
=]
Uau , ainda bem que não são 1000 portas, né dmarcosm?
Já pensou?
|
Roberto Marin
__________________________________________
Odeio auto-nerds! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2007 21:59:11
|
Adolfo Rodrigues
Java Ninja
![[Avatar]](/images/avatar/5c9dc137c4e9543d7e4001d7bdef7413.jpg)
Membro desde: 18/04/2007 20:02:52
Mensagens: 270
Localização: Sampa
Offline
|
Já aprendeu reflexão? Se sim, poderia pegar todas as Portas da sua Casa e ver se elas estão abertas. É bom que se tiver 1 ou 1000 Portas o seu código vai ser o mesmo (não vai precisar daqueles 1000 ctrl c + ctrl v)
|
http://www.adolfosousa.com.br/blog |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/09/2007 07:35:45
|
evil.hunter
Entusiasta Java
![[Avatar]](/images/avatar/f4901fe9f7579de134a23723831738ac.png)
Membro desde: 16/03/2007 10:23:05
Mensagens: 23
Localização: Brasília, DF
Offline
|
Adolfo infelizmente ainda não aprendi reflexão ainda. Rmarin eu vi o que estava fazendo errado, eu tinha feito código idêntico ao que você fez só que não tinha colocado o this. Por isso não estava dando certo. Alias muito obrigado a todos pelas respostas...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/09/2007 08:58:42
|
neohacker
Virtual Machine Man
![[Avatar]](/images/avatar/e5a419ed77a4e034849e1e1b68ba015e.jpg)
Membro desde: 30/10/2006 15:23:14
Mensagens: 576
Localização: Santo André
Offline
|
Cara usa a solução do Thingol .... já usou Varargs ??
É bem simples e fácil ....
e outra parte que você poderia mexer e ficar melhor de entender.
|
http//www.tecnologiaims.blogspot.com
↑ Grab this Headline Animator http://www.imstechnology.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/09/2007 10:01:17
|
rmarin
JavaEvangelist
![[Avatar]](/images/avatar/46e0eae7d5217c79c3ef6b4c212b8c6f.jpg)
Membro desde: 13/07/2005 09:14:45
Mensagens: 360
Localização: São Paulo
Offline
|
evil.hunter wrote:Adolfo infelizmente ainda não aprendi reflexão ainda. Rmarin eu vi o que estava fazendo errado, eu tinha feito código idêntico ao que você fez só que não tinha colocado o this. Por isso não estava dando certo. Alias muito obrigado a todos pelas respostas...
Cara, a minha sugestão foi exatamente para você não usar isso. Imagine, toda vez que uma casa ganhar uma nova porta você terá que colocar um novo if nesse código, isso não é legal.
Usar reflection na camada de negócios para capturar o tipo dos atributos, perguntar se é uma porta e aí sim verificar se ela está aberta, é uma solução. Porém não acho que seja a melhor saída. Reflection deve ser utilizada somente em casos em que haja realmente necessidade, ou seja, dificilmente você usa reflection na camada de negócios. Geralmente em classes de infra-estrutura, ou coisas do gênero.
Agora com relação a solução do varargs, também é uma saída, entretanto, caso a casa ganhe novas portas, além de termos que inserir novos atributos Porta a classe, teremos que colocar um novo argumento para o método contaPortasAbertas (Porta portas...).
--
Uma casa tem N portas, a não ser que seja uma casa específica, ou seja, CasaDaTiaAvóDoMarquinhos, fora isso, a melhor solução é trabalhar com uma lista. Daí você pode ter o addPorta(Porta porta), e aí sim sua casa vai poder ter quantas portas você quiser, e poderá ser a CasaDaTiaAvóDoMarquinos, CasaDoPaiDoZezão, CasaDosInferno...
|
Roberto Marin
__________________________________________
Odeio auto-nerds! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/09/2007 12:01:02
|
Calzetta
HelloWorld
![[Avatar]](/images/avatar/d3802b1dc0d80d8a3c8ccc6ccc068e7c.jpg)
Membro desde: 03/08/2004 10:47:47
Mensagens: 11
Localização: São Paulo - SP
Offline
|
rmarin wrote:
evil.hunter wrote:Adolfo infelizmente ainda não aprendi reflexão ainda. Rmarin eu vi o que estava fazendo errado, eu tinha feito código idêntico ao que você fez só que não tinha colocado o this. Por isso não estava dando certo. Alias muito obrigado a todos pelas respostas...
Cara, a minha sugestão foi exatamente para você não usar isso. Imagine, toda vez que uma casa ganhar uma nova porta você terá que colocar um novo if nesse código, isso não é legal.
Usar reflection na camada de negócios para capturar o tipo dos atributos, perguntar se é uma porta e aí sim verificar se ela está aberta, é uma solução. Porém não acho que seja a melhor saída. Reflection deve ser utilizada somente em casos em que haja realmente necessidade, ou seja, dificilmente você usa reflection na camada de negócios. Geralmente em classes de infra-estrutura, ou coisas do gênero.
Agora com relação a solução do varargs, também é uma saída, entretanto, caso a casa ganhe novas portas, além de termos que inserir novos atributos Porta a classe, teremos que colocar um novo argumento para o método contaPortasAbertas (Porta portas...).
--
Uma casa tem N portas, a não ser que seja uma casa específica, ou seja, CasaDaTiaAvóDoMarquinhos, fora isso, a melhor solução é trabalhar com uma lista. Daí você pode ter o addPorta(Porta porta), e aí sim sua casa vai poder ter quantas portas você quiser, e poderá ser a CasaDaTiaAvóDoMarquinos, CasaDoPaiDoZezão, CasaDosInferno...
rmarin, não se esqueça que ele está aprendendo a apotila da Caelum ainda.
|
Quem sabe de verdade é quem sabe explicar. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/09/2007 12:07:04
|
Calzetta
HelloWorld
![[Avatar]](/images/avatar/d3802b1dc0d80d8a3c8ccc6ccc068e7c.jpg)
Membro desde: 03/08/2004 10:47:47
Mensagens: 11
Localização: São Paulo - SP
Offline
|
evil.hunter,
Use a solução abaixo neste momento, as apostilas da Caelum são muito boas e elas têm um objetivo pedagógio, não pule etapas.
Faça do jeito abaixo para vc manjar de lógica e atributos de classe, mais para frente vc aprenderá os modos corretos.
Siga a apostila.
evil.hunter wrote:Adolfo infelizmente ainda não aprendi reflexão ainda. Rmarin eu vi o que estava fazendo errado, eu tinha feito código idêntico ao que você fez só que não tinha colocado o this. Por isso não estava dando certo. Alias muito obrigado a todos pelas respostas...
|
Quem sabe de verdade é quem sabe explicar. |
|
|
 |
|
|