Dúvida Sobre Classes Internas..no livro da Kathy Sierra

12 respostas
leofernandesmo

Estava eu estudando pelo livro da Kathy Sierra para a prova de certificação (SCJP) e me deparei com a seguinte questão (Exercício)

Questão 3. O que cria uma instância de uma classe interna anônima?
No livro a resposta correta seria a letra “E”:

E. System.out.print ( new Runnable(){public void run () {}} )

mas continuo achando que a resposta correta é a letra “D”…

D. Runnable r = new Runnable (){public void run(){}};

Alguém poderia me explicar??

Ps: A questão número 2 também está incorreta na minha opnião…se alguém souber, comentem por favor.

Atc.

12 Respostas

esb

Oi leofernandesmo,

Vi a questão no livro de um colega, se você está usando a versão em português, a opção D não é essa, e sim essa:

Runnable r = new Runnable (){public void run{}};

E nesse caso, a sintaxe está incorreta. Cuidado com esses exercícios do livro em Português. E com o capítulo de Threads inteiro, é um verdadeiro lixo.

[]s e boa sorte,
Eduardo

leofernandesmo

Mas pq está incorreta??

esb:

[editado]Agora que li novamente, entendi sua pergunta[/editado]

Questão completa:
3.O que cria a instância de uma classe interna anônima?

A. Runnable r = new Runnable() {};

B. Runnable r = new Runnable(public void run(){}) ;

C. Runnable r = new Runnable{public void run(){}} ;

D. Runnable r = new Runnable(){public void run(){}};

E. System.out.print( new Runnable(){public void run(){}});
esb

Foi mal cara, eu que tinha entendido errado. Respondi ai em cima. Espero que te ajude!

[]s

diego2005

Olha a pergunta do livro em inglês:

Which constructs an anonymous inner class instance?

A. Runnable r = new Runnable() { };

B. Runnable r = new Runnable(public void run() { });

C. Runnable r = new Runnable { public void run(){}};

D. Runnable r = new Runnable() {public void run{}};

E. System.out.println(new Runnable() {public void run() { }});

F. System.out.println(new Runnable(public void run() {}));

A resposta correta é a letra E.

leofernandesmo

esb:

E nesse caso, a sintaxe está incorreta.

A sintaxe da letra “D” compila aqui no JBuilder.
Acho que a pergunta que eu não deva está entendendo…pq pra mim a letra “E” seria uma classe interna anônima definida no argumento e a letra “D” seria uma classe interna anônima.
Num é assim não??

leofernandesmo

esb:

E nesse caso, a sintaxe está incorreta.

Foi mal… foi mal …foi mal
Reparei agora :slight_smile:

diego2005

Você ta usando o livro em português, ne???

Também tenho a versão em português, e infelizmente já achei questões com erro de tradução.

Quando tiver na dúvida assim procure alguém que tenha o livro em inglês pra conferir a questão.

esb

Fala leofernandesmo,

Eu postei a alternativa D que está no livro em inglês, e o diego2005 postou a pergunta completa logo em seguida, dê uma olhada. No livro em inglês, a alternativa correta é a E, e as outras são incorretas. No caso da letra D, há um erro de sintaxe.

Suponho que essa alternativa D que você postou, seja a do livro em Português. No caso do livro em Português, por um erro de digitação, diagramação, sei lá o que, a alternativa D está correta, mas não deveria estar. Então você vai lá nas respostas e vê que apenas a E está correta e acha estranho.

Como disse anteriormente, tome cuidado com as traduções, principalmente do capítulo de Threads, onde comeram boa parte de um código exemplo. Lamentável.

[]s

leofernandesmo

PUTA MERDA…hahahhahaha
Valeu aí todo mundo. Agora que eu vi que falta o parentese…
valeu

akumaldo

diego2005:
Olha a pergunta do livro em inglês:

Which constructs an anonymous inner class instance?

A. Runnable r = new Runnable() { };

B. Runnable r = new Runnable(public void run() { });

C. Runnable r = new Runnable { public void run(){}};

D. Runnable r = new Runnable() {public void run{}};

E. System.out.println(new Runnable() {public void run() { }});

F. System.out.println(new Runnable(public void run() {}));

A resposta correta é a letra E.

Baseado nisso aqui que foi postado…tanto as alternativas D e E compilam…
Mas esses livros traduzidos dão uma enorme confusão…é o presso que se paga, no meu caso, de ser preguiçoso! :lol:

LPJava

finalmente a resposta correta é qual galera? D ou E? houve um erro na tradução mesmo ou nao? to desistindo de pegar o livro… ta mal eita altabooks!!

diego2005

No livro em inglês a resposta certa é a letra E…

Falow…T+

Criado 3 de agosto de 2006
Ultima resposta 3 de ago. de 2006
Respostas 12
Participantes 5