Dúvida exercício 5 do cap 3 do livro scjp6 Kathy Sierra  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
Slaydy
Thread.start()

Membro desde: 26/01/2005 18:10:09
Mensagens: 36
Localização: São Paulo - SP
Offline

A questão é a seguinte:



5. Given:


What is the result?
A. true true
B. false true
C. true false
D. false false
E. Compilation fails
F. An exception is thrown at runtime


Eu respondi E. Compilation fails, mas a resposta correta segundo o livro é A. true true, quando fui compilar o código realmente não compilou: "cannot assign a value to final variable f1!". Agora fiquei confusa?! Eu respondi que não compila por que pra mim a passar f1 como argumento na linha: não é válido. Qual a opinião de vocês?

Laydy
[MSN]
davidtiagoconceicao
Virtual Machine Man
[Avatar]

Membro desde: 17/10/2008 07:28:29
Mensagens: 567
Localização: Blumenau - SC
Offline

Olá Slaydy.
Analisei o código e compilei ele aqui. O resultado foi true true, coincidindo com a resposta do livro.
Não entendi muito bem a sua dúvida, a única atribuição de valor para f1 ocorre na linha



A atribuição do resultado do método FizzSwitch é feita para f3 e não para f1. Apenas o valor do atributo x é alterado, o que neste caso é válido.

This message was edited 1 time. Last update was at 28/02/2009 18:02:54


Bacharel em Ciência da Computação/FURB
SCJP 6
Android Developer
Slaydy
Thread.start()

Membro desde: 26/01/2005 18:10:09
Mensagens: 36
Localização: São Paulo - SP
Offline

Oi David,

Obrigado vc ajudou mto, eu fiz uma pequena bagunça nos arquivos de códigos fonte aqui e por isso não estava compilando!!

Não sei porque fiquei com dúvida se podia passar a variavel "f1" como parametro pro outro método mas já esclareci a confusão com a sua ajuda.

Obrigada.

Laydy
[MSN]
davidtiagoconceicao
Virtual Machine Man
[Avatar]

Membro desde: 17/10/2008 07:28:29
Mensagens: 567
Localização: Blumenau - SC
Offline

De nada

A variável final pode ser passada como parâmetro livremente. A única restrição é que a variável declarada não pode ser alterada...

Bacharel em Ciência da Computação/FURB
SCJP 6
Android Developer
guilherme.cq
JavaGuru

Membro desde: 21/03/2007 12:52:27
Mensagens: 222
Offline

Uma dúvida!!!!

Eu respondei bem rápido essa questão... e errado...

não daria algum erro em relação ao int x não ser estático???
Pois vc esta usando x no método main estatico e ainda no FizzSwitch tb estatico....


Poderiam me esclarecer?

Obrigado.
davidtiagoconceicao
Virtual Machine Man
[Avatar]

Membro desde: 17/10/2008 07:28:29
Mensagens: 567
Localização: Blumenau - SC
Offline

Não por que o int x só é acessado através de uma instância do objeto (z.x), portanto não há problema quanto a int x não ser static.

Bacharel em Ciência da Computação/FURB
SCJP 6
Android Developer
lipe82
Debugger
[Avatar]

Membro desde: 28/04/2006 10:59:33
Mensagens: 61
Offline

Uma consideração importante a fazer tb é que é possível fazer isso numa boa...

pq eu altero um atributo que não é final , porém, isso não é possível...

pq eu altero uma variável que É final

achei muito estranho, mas é importante resaltar para isso

This message was edited 1 time. Last update was at 02/03/2009 09:09:56

[WWW]
Daniel.F
GUJ Ranger

Membro desde: 29/03/2007 18:30:39
Mensagens: 909
Offline

Vc estão com livro em português pq no meu está falatando este metodo:
static Fizz FizzSwitch(Fizz x, Fizz y) {
final Fizz z = x;
z.x = 6;
return z;
}


[Email]
Nykolas Lima
Virtual Machine Man
[Avatar]

Membro desde: 07/07/2008 13:10:41
Mensagens: 606
Offline

Daniel.F wrote:Vc estão com livro em português pq no meu está falatando este metodo:
static Fizz FizzSwitch(Fizz x, Fizz y) {
final Fizz z = x;
z.x = 6;
return z;
}


Daniel, o meu livro tbm é em portugues e está faltando o método FizzSwitch msm...acho que quando traduziram esqueceram de por ¬¬

abraços

Blog: http://nykolaslima.wordpress.com
[WWW]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team