| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/08/2007 13:50:12
|
cu_ringa
Virtual Machine Man
![[Avatar]](/images/avatar/d72fbbccd9fe64c3a14f85d225a046f4.png)
Membro desde: 27/08/2003 00:19:11
Mensagens: 602
Localização: Natal-RN
Offline
|
tava fazendo o simulado do livro da kathy(software) e tinha a seguinte pergunta:
a resposta do simulado é A e D. sendo q no livro da kathy na pag. 402 o metodo run é definido na interface Runnable. E ai pessoal ql a resposta correta, sabendo q de todo jeito "run" sempre vai tar definido em Thread já q essa implementa Runnable.
|
"O que levamos desta vida, é a vida que a gente leva". |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/08/2007 14:11:13
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Olhando o javadoc de java.lang.Thread:
Javadoc wrote:
...
void start()
Causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread.
...
void run()
If this thread was constructed using a separate Runnable run object, then that Runnable object's run method is called; otherwise, this method does nothing and returns.
...
A resposta é A e D.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/08/2007 14:13:44
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
Quando se pegunta "qual o metodo definido em X" significa "qual o método que X traz de novo em relação a tudo o resto na sua hierarquia". Ou de outro de ponto de vista " qual o método cuja assinatura é definida na classe X"
Thread tem start() que nenhum outra classe a sua hierarquia tem. run() pertence a Runnable que Thread implementa e wait() e notifiy() pertence a Object. É por isso que a resposta certa é apenas os metodos de Thread.
nota: run() é de uma interface por isso a implementação é de Thread
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/08/2007 11:44:25
|
Raff
Virtual Machine Man
![[Avatar]](/images/avatar/1f8d87e1161af68b81bace188a1ec624.png)
Membro desde: 31/07/2006 10:31:45
Mensagens: 642
Localização: Marilia - SP / São Carlos -SP
Offline
|
Só lembrando que Threads implementa a Interface Runnable e..... implementa o metodo run() por isso a resposta é A & D...
|

SCJP 5.0
SCWCD 5.0
Mestrando UFSCAR... |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/08/2007 15:48:52
|
LPJava
GUJ Hacker
Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline
|
boa pergunta ehheh.. nao pode esquecer que a class Thread implicitamente ela faz:
mas uma questao dessa dar para matar no exame ja q ele informa quantas está correta.. hehehe se o cara saber que wait e notify pertence a Object... pronto 50% ja foi
flw.. boa questao..gostei ..
|
Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/08/2007 16:01:38
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
No Javadoc da classe Thread diz que o run():
Quer dizer entao que se meu JFrame implementa a interface ActionListener, posso entao dizer que meu JFrame é quem 'define' o método actionPerformed()?
Concordo com o autor do tópico, e descordo da resposta do simulado. Ao meu ver parece certo apenas a opção A.
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/08/2007 16:39:43
|
LPJava
GUJ Hacker
Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline
|
assim tomar cuidado de nao achar que run() é da class Thread, ela é da interface Runnable se vc olhar a tabela nesse capitulo da kathy, vai ver que run() não é um metodo da class Thread... o que acontece ai.. é apenas que qualquer classe que implementa uma interface ela recebe todos os metodos da interface...
Achei uma pergunta meia infeliz.. mais isso está na raiz do exame.. de perguntas assim.. eles quer que vc futuro scjp, entenda as coisas de varias formas.. acho que a ideia ai.. foi mais testar se vc está ligado na questao de herdar membros que o assunto sobre Threads..
|
Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/08/2007 02:31:00
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
fabiocsi wrote:No Javadoc da classe Thread diz que o run():
Quer dizer entao que se meu JFrame implementa a interface ActionListener, posso entao dizer que meu JFrame é quem 'define' o método actionPerformed()?
Specified (especificado, que dita a especificação) e Defined (definido, que dita a definição) são coisas diferentes, por isso temos classes e interfaces
Interfaces especificam. Elas ditam as regras que têm que ser cumpridas, mas não ditam como. Quando Runnable especifica run() ela não diz o que tem que acontecer lá dentro.
Classes definem. Elas não só ditam as regras que têm que ser cumpridas mas tb como elas são cumpridas. Quando Thread define run() ela diz o que acontece. Mais do que isso, acontece de uma única forma ( dai o definir : dar definição, contorno, distinguir de outros).
Quando o seu JFrame implementa ActionListener ele está definindo um comportamento para a especificação dada por ActionListener. Então, sim, neste ponto de vista JFrame sim define actionPerformed().
Veja por outro lado. String e StringBuffer já existiam quando CharSequence por foi introduzido. Hastable já existia quando Map foi introduzido. Seria então correto dizer que CharSequence define length() se String tinha primeiro ? o que que Map define put() se Hashtable usava antes dele ?
Concerteza não.
String definiu como length() é CharSequence só especifica que esse método (+ alguns outros) são suficiente para caracterizar uma seqüência de caracteres. Ele não define o que length() faz. Apenas especifica o que se espera de length(). O fato desta especificação ser retrocompativel com String não tem a ver com definir ou especificar mas com ser coerente, ver padrões , abstrair capacidades.
Mas eu concordo consigo, a pergunta não é clara e é enganadora. Qualquer um que remover wait() e notifiy() (que não são definidas originalmente por Thread) desacartará run() já que a diferença entre definir e especificar não é explicada em detalhe para que a pergunta faça sentido de forma a levar à resposta esperada.
Ainda bem que não é mais a Kathy que faz os exames ...
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
|
|