| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 13:40:56
|
Sinvaldo_Junior
Entusiasta Java
![[Avatar]](/images/avatar/561733698d12040c54e8f129f445440b.jpg)
Membro desde: 19/04/2010 14:49:31
Mensagens: 17
Offline
|
Ola pessoal tenho uma dúvida básica quanto a passagem de parâmetros em métodos, a dúvida é referente a um trecho do código abaixo:
estou utilizando a passagem de parâmetros dentro do método leNotas(), quando eu retiro os parâmetros a aplicação
funciona normalmente, porém quando eu coloco os parâmetros o resultado aparece zerado 0.0, gostaria de entender o porquê,
outra coisa bem básica que eu gostaria de entender é qual é a vantagem de utilização de parâmetros, uma vez que em qualquer
um desses métodos o seu uso é desnecessário
Obrigado !
This message was edited 2 times. Last update was at 01/09/2010 13:59:57
|
Sinvaldo Junior |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 13:49:42
|
evertonsilvagomesjava
GUJ Master
![[Avatar]](/images/avatar/6370988b46be58caec00d925d91d2f99.png)
Membro desde: 23/08/2009 13:14:01
Mensagens: 1924
Offline
|
use as tags "code" e "/code pra postar seus codigos,
This message was edited 1 time. Last update was at 01/09/2010 13:50:23
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 14:04:09
|
Gustavokt
JavaBaby
![[Avatar]](/images/avatar/ff3ec3c8e2728bb27462a546ea460bb4.png)
Membro desde: 01/09/2009 11:09:41
Mensagens: 95
Offline
|
Sinvaldo_Junior wrote:
estou utilizando a passagem de parâmetros dentro do método leNotas(), quando eu retiro os parâmetros a aplicação
funciona normalmente, porém quando eu coloco os parâmetros o resultado aparece zerado 0.0, gostaria de entender o porquê,
É o padrão do java o tipo da sua variável quando não se inicializa a variável
Sinvaldo_Junior wrote:
outra coisa bem básica que eu gostaria de entender é qual é a vantagem de utilização de parâmetros, uma vez que em qualquer
um desses métodos o seu uso é desnecessário
Se você for fazer tudo na mesma classe, realmente não faz sentido ter parâmetros. Mas daí você não vai conseguir fazer nada orientado a objeto, depende do que você quer fazer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 14:16:46
|
vaziocs2
What is classpath?
Membro desde: 02/11/2009 20:52:49
Mensagens: 7
Offline
|
Nesse caso nao tem vantagem nenhuma, vc ja esta usando um componente do swing, que está recebendo o parametro de qualquer jeito.
A media está aparecendo 0.0 pq
calculaMedia(nota1, nota2); ta pegando os valores de
static double nota1=0,nota2=0,media=0;
e quando vc faz
nota1 = Double.parseDouble(JOptionPane.showInputDialog("Digite a primeira nota"));
nota1 ali é o seu parametro não é a variavel.
E saindo do metodo lenotas esse nota1 morreu ai.
codigo funcionando
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 14:37:36
|
Sinvaldo_Junior
Entusiasta Java
![[Avatar]](/images/avatar/561733698d12040c54e8f129f445440b.jpg)
Membro desde: 19/04/2010 14:49:31
Mensagens: 17
Offline
|
Nossa ! verdade,
o valor obtido pela JOptionPane é atribuído para o parâmetro e não para a variável (atributo) agora entendi o erro.
caros amigos,
deixa eu ver se eu entendi direito a vantagem da utilização de parâmetros,
eles possibilitam eu efetuar procedimentos em outras classes de modo a referênciar atributos da
classe que os contém ?
Muito Obrigado !
|
Sinvaldo Junior |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 14:40:17
|
Gustavokt
JavaBaby
![[Avatar]](/images/avatar/ff3ec3c8e2728bb27462a546ea460bb4.png)
Membro desde: 01/09/2009 11:09:41
Mensagens: 95
Offline
|
Gustavokt wrote:
É o padrão do java o tipo da sua variável quando não se inicializa a variável
Ops, na verdade, você inicializou as variáveis tudo com 0 e naquele método que deveria inicializar os valores, seus parâmetros tem o mesmo nome das varáveis de classe.
Ficou meio confuso como você quis inicializar as variáveis mas tem 2 coisas...
1) Você quis alterar os valores do método, mas não conseguiu porque java passa o valor dos parâmetros e não referência.
2) Passou a variável da classe como parâmetro (o que não precisava pois era da classe)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 15:46:05
|
truck1n
Java Ninja
Membro desde: 26/04/2006 11:41:05
Mensagens: 296
Localização: São Paulo
Offline
|
Você esta colocando um Object dentro de um primitivo?
|
Get Rich Or Die Trying |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 17:50:23
|
Sinvaldo_Junior
Entusiasta Java
![[Avatar]](/images/avatar/561733698d12040c54e8f129f445440b.jpg)
Membro desde: 19/04/2010 14:49:31
Mensagens: 17
Offline
|
truck1n wrote:Você esta colocando um Object dentro de um primitivo?
Não perceba que no exemplo não crio nenhum objeto
Mas pensando melhor aqui com os meus botões, para o leNota() na main eu passo os parâmetros
nota1 e nota2, atributos esses criados globalmente, não era para o método modificar os valores dessas variáveis e quando eu chamasse o
calculaMedia(nota1, nota2) essas notas não estariam com os valores obtidos pela JOptionPane ?
|
Sinvaldo Junior |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 19:10:31
|
adriano_si
JWizard
![[Avatar]](/images/avatar/4f9ef38edcfc460a00cbb8ed5dee299c.jpg)
Membro desde: 01/10/2006 15:29:40
Mensagens: 2047
Offline
|
Cara... (sem fazer o teste aqui porque to sem Java no momento) vou te dar uma sugestão, retira os parametros do metodo leNota() e executa de novo...
Se nao entender o que aconteceu, pergunte aqui de novo.
Falows
|
"É preciso ter mais fé pra acreditar que viemos do nada..."
Blog - http://aohana.wordpress.com/
Padrão de nomenclatura Java - http://www.oracle.com/technetwork/java/codeconventions-139411.html#16712
Doc. Java - http://www.oracle.com/technetwork/java/javase/documentation/index.html
Faça perguntas Inteligentes - http://istf.com.br/perguntas
Sobrevivência no GUJ:
(Regras) http://www.guj.com.br/java/21516-regras-do-forum
(Boa prática) http://www.guj.com.br/java/15477-antes-de-voce-perguntar
(Código fonte) http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/09/2010 10:33:31
|
Sinvaldo_Junior
Entusiasta Java
![[Avatar]](/images/avatar/561733698d12040c54e8f129f445440b.jpg)
Membro desde: 19/04/2010 14:49:31
Mensagens: 17
Offline
|
adriano_si wrote:Cara... (sem fazer o teste aqui porque to sem Java no momento) vou te dar uma sugestão, retira os parametros do metodo leNota() e executa de novo...
Se nao entender o que aconteceu, pergunte aqui de novo.
Falows 
retirando os parâmetros roda normalmente,
mas eu acho que finalmente entendi o que acontece neste exemplo, caso o meu raciocínio esteja errado eu peço que por favor me correjam,
como estou passando os meus atributos ( com o mesmo nome >.< ) como parâmetros por valor dentro do método leNotas() eu tento realizar
uma modificação em seus valores, o que não é possível por ser uma passagem por valor, ou seja, as atualizações não seram refletidas nas
variáveis passadas como parâmetros , isto foi dito pelo nosso amigo anteriormente (demorei a entender =P)
agora uma outra perguntinha, Java possibilita a passagem por referência ?
Obrigado Amigos !
This message was edited 1 time. Last update was at 02/09/2010 10:34:27
|
Sinvaldo Junior |
|
|
 |
|
|