uma questão leve sobre Wrappers  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
marciolx
GUJ Master
[Avatar]

Membro desde: 28/01/2003 15:38:00
Mensagens: 1090
Localização: Piracicaba/SP
Offline

dado o código abaixo, seleciona todas as alternativas corretas:

a - erro de compilação na linha 4
b - erro de compilação na linha 7
c - compila, roda e lança runtime exception
d - compila, roda e imprime true
e - compila, roda e imprime false


@ till %. Simple.
[Email]
ricardolecheta
GUJ Master
[Avatar]

Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline

erro de compilação na linha 4

os wrappers Integer, Float, Double,Boolean possuem um construtor que recebe uma String...

mas o wrapper Character só possui um construtor que recebe um char

Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/
Rosauro Barcia Fonseca
Thread.start()

Membro desde: 21/10/2002 21:59:35
Mensagens: 26
Offline

Creio que não se pode estanciar um char com String-linha 4,nem atribuir a um boolean um inteiro-linha 7.Não Compila
marciolx
GUJ Master
[Avatar]

Membro desde: 28/01/2003 15:38:00
Mensagens: 1090
Localização: Piracicaba/SP
Offline

ricardolecheta wrote:

mas o wrapper Character só possui um construtor que recebe um char


ok, e nunca se esqueça disso

@ till %. Simple.
[Email]
marciolx
GUJ Master
[Avatar]

Membro desde: 28/01/2003 15:38:00
Mensagens: 1090
Localização: Piracicaba/SP
Offline

Rosauro Barcia Fonseca wrote:Creio que não se pode estanciar um char com String-linha 4,nem atribuir a um boolean um inteiro-linha 7.Não Compila


você acertou, erro de compilação nas linhas 4 e 7, mas no caso da linha 7, o boolean NÃO está recebendo um valor inteiro, ele está recebendo o resultado da comparação com == (que é sempre um boolean) entre um wrapper Integer e um wrapper Long.

Isso é errado porque Integer e Long não estão na mesma hierarquia, ambas são subclasses da classe abstrata java.lang.Number, mas uma referência do tipo Integer nunca pode referenciar um objeto do tipo Long.

Ocorre o mesmo com o operador instanceof, veja o código abaixo:



nele, o System.out.println que está comentado com //este resulta em um erro de compilação, isto porque objetos das classes C e B não apresentam qualquer relação de herança (mesmo remota, como seria o caso de Object e S, por exemplo).

@ till %. Simple.
[Email]
Rosauro Barcia Fonseca
Thread.start()

Membro desde: 21/10/2002 21:59:35
Mensagens: 26
Offline

Marciolix Explicação brilhante.Eu não tinha percebido que estava-se atribuindo uma igualdade a um boolean e se a igualdade fosse válida eu teria errado a resposta.
ricardolecheta
GUJ Master
[Avatar]

Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline

Rosauro Barcia Fonseca wrote:Marciolix Explicação brilhante


é isso aí marciolx!

continue trazendo questões assim! tá me ajudando muito

Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/
caiofilipini
GUJ Master
[Avatar]

Membro desde: 26/06/2003 15:17:59
Mensagens: 1255
Localização: São Paulo
Offline

ricardolecheta wrote:
Rosauro Barcia Fonseca wrote:Marciolix Explicação brilhante


é isso aí marciolx!

continue trazendo questões assim! tá me ajudando muito


Opa, e a mim também!

[]'s

Caio N. Filipini
"There is no spoon."
[Email] [WWW]
marciolx
GUJ Master
[Avatar]

Membro desde: 28/01/2003 15:38:00
Mensagens: 1090
Localização: Piracicaba/SP
Offline

caiofilipini wrote:
ricardolecheta wrote:
Rosauro Barcia Fonseca wrote:Marciolix Explicação brilhante


é isso aí marciolx!

continue trazendo questões assim! tá me ajudando muito


Opa, e a mim também!

[]'s


e a mim também
falando sério... escrever e tentar compilar e rodar os programas é uma das melhores maneiras de aprender.

@ till %. Simple.
[Email]
Panga
JavaBaby

Membro desde: 23/01/2003 09:09:34
Mensagens: 84
Localização: Brasília
Offline

Cara, desse jeito vc pode criar seu próprio simulado e colocar na internet!

Obrigado!
passos
JavaEvangelist
[Avatar]

Membro desde: 25/10/2002 10:19:27
Mensagens: 345
Localização: Rio de Janeiro
Offline

marciolx wrote:isto porque objetos das classes C e B não apresentam qualquer relação de herança (mesmo remota, como seria o caso de Object e S, por exemplo).


Cara.... nunca tinha ouvido falar nisso... então quer dizer que pra uma classe estar num instanceof ela tem ao menos que pertencer a uma herança != de Object?

Daniel Passos (twitter: @passos)
Curso Java | Curso Rails | Curso Android
[Email]
Java Vinicius Machine
JavaEvangelist
[Avatar]

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


Isso ae em cima tbm não compila então eu cheguei a conclusão que pra se utilizar o operador instanceof é necessário que o mesmo seja aplicado numa referencia que faça parte da hierarquia de classes e como no exemplo acima c não possui nenhum tipo de relacionamento com B ocorre um erro de compilação (os dois apenas são subclasses de Object como todas as outras classes em java)?
Eh isso mesmo marciolx ?
PS: voh pesquisar sobre o operador no livro da Kathy hoje a noite quando eu tiver um tempinho de sobre e posto mais coisinhas interessantes pra galera.

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
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

marciolx wrote:dado o código abaixo, seleciona todas as alternativas corretas:

a - erro de compilação na linha 4
b - erro de compilação na linha 7
c - compila, roda e lança runtime exception
d - compila, roda e imprime true
e - compila, roda e imprime false





Só não entendi uma coisa, quando ele vai entrar nesse método que se chama "metodo"?
Se não houvessem os erros de compilação ele executaria normalmente?

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
diegobrandao
Debugger

Membro desde: 26/05/2008 10:16:05
Mensagens: 52
Localização: Curitiba - PR
Offline

Olá,

Modifiquei um pouco o código para compilar...




Só não entendi uma coisa, quando ele vai entrar nesse método que se chama "metodo"?
Se não houvessem os erros de compilação ele executaria normalmente?


Ele não entra neste metodo() em momento algum. O código apenas chama o método getB() que rertona um boolean b, que no caso ainda é false (valor default).
ok?

---
Diego

This message was edited 1 time. Last update was at 15/09/2008 12:54:59


Diego Alves Brandão
Bacharel em Sistemas de Informação
Sun Certified Java Programmer 5.0
[MSN]
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

diegobrandao wrote:Olá,

Modifiquei um pouco o código para compilar...




Só não entendi uma coisa, quando ele vai entrar nesse método que se chama "metodo"?
Se não houvessem os erros de compilação ele executaria normalmente?


Ele não entra neste metodo() em momento algum. O código apenas chama o método getB() que rertona um boolean b, que no caso ainda é false (valor default).
ok?

---
Diego



Ahhh! é por que achei estranho, então no primeiro caso ele apenas imprimiria false ou daria erro de compilação? Qual seria realmente a resposta certa? é uma pegadinha? o realmente dá erro na compilação?


Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team