Qual será a resposta?  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
marcelo_mococa
Virtual Machine Man
[Avatar]

Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline

To fazenu uns simulados...
Não estou entendendo este codigo, O q será impresso na tela?
Por favor expliquem...


Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog

Java Vinicius Machine
JavaEvangelist
[Avatar]

Membro desde: 03/12/2004 12:56:35
Mensagens: 484
Offline

A saída será:
10
40

e não:
20
40

como esperado, isso acontece porque uma cópia do valor de i é passada para o método então o valor (conteúdo) da variavel i não é alterado. Por outro lado j tem seu valor alterado porque é uma variavel estática (também chamada de variavel de classe) e qualquer alteração na mesma será refletido em qualquer instância da classe que tentar acessa-lá.
Entendeu?

{}-s

This message was edited 2 times. Last update was at 06/08/2005 19:17:45


Any fool can write code that a computer can understand. Good programmers write code that humans can understand. (Fowler)


Sun Certified Programmer for the Java Platform 1.4
Grinvon
GUJ Master
[Avatar]

Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline

Exato, é como Vinícios falou. Apenas a cópia da variável local é passado para o método solicitado, portanto quando o método é finalizado o valor não retornando para o main().

E como i é uma variável estática, então ela irá mudar o valor, em qualquer parte do código que esteja. Diferentimente aconteceria se ao invés de ser passado um tipo primitivo fosse um objeto.

>> Inocêncio.
[MSN] [ICQ]
Kabaldf
Debugger

Membro desde: 13/04/2005 01:34:50
Mensagens: 67
Offline

Questão bbbeeemmm tipica de certificação... Mas isso ai vai complicar um pouco mais qndo for com objetos, ai vc vai que tem alguns que vão fazer algo mais ou menos assim, como as String
Se não prestar atençao da para dancar legal!

 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team