A importância de codificar!

8 respostas
anderson.bonavides

Bem gente eu estava estudando e me deparei com a seguinte questão:

Qual será o resultado?

class Tree{ private static String tree = "tree "; String getTree(){return tree;} } public class Elm { private static String tree = "elm "; public static void main(String[] args) { new Elm().go(new Tree()); } void go(Tree t){ String s = t.getTree()+ Elm.tree + tree + (new Elm().getTree()); System.out.println(s); } }
A) elm elm elm elm
B) tree elm elm elm
C) tree elm tree elm
D) tree elm elm tree
E) Ocorrerá erro de compilação
F) Uma exceção sera lançada em tempo de execução

Pense
.
.
.
.
.
.
.
.
.
.
.
Depois de muito enrolar a cabeça por se tratar de um livro sério e publicado por um cara engenheiro da Sun percebi que o código estava errado e que minha resposta não se chocava com nenhuma saída.

Aqui está o código corrigido:

class Tree{ private static String tree = "tree "; String getTree(){return tree;} } public class Elm { private static String tree = "elm "; public static void main(String[] args) { new Elm().go(new Tree()); } void go(Tree t){ String s = t.getTree()+ Elm.tree + tree + (new Elm().getTree()); System.out.println(s);//tree - elm - elm - elm } String getTree() { //faltava esse método. return tree; } }

Anteriormente ele dava a letra D com respota mas depois de corrigido verifiquei que a resposta é a letra B.

Conclusão: Vejo agora mais do que nunca a importância de codificar as questões que te geram dúvida.

Eu criei esse tópico com a intenção incentivar aqueles que estão começando estudar para SCJP para que codifiquem. Codificar é tão importante quanto ler o livro da K&B.

Vlw t+.

8 Respostas

J

Ele pode ter esquecido de colocar no código que Elm é um Tree, se fizer isso a resposta será D como o autor afirma.

public class Elm extends Tree{ . . . }

anderson.bonavides

Vc tem razão javadev o polimofismo atua e imprime tree mesmo. Caso contenha um extends. Vou verificar se foi falha minha então. hauhauha

G

sem o novo método a resposta seria erro de compilação
o que ainda assim estaria certo, porque existe essa opção.

[]s
Gunnar

Raff

anderson.bonavides:
Bem gente eu estava estudando e me deparei com a seguinte questão:

Qual será o resultado?

class Tree{ private static String tree = "tree "; String getTree(){return tree;} } public class Elm { private static String tree = "elm "; public static void main(String[] args) { new Elm().go(new Tree()); } void go(Tree t){ String s = t.getTree()+ Elm.tree + tree + (new Elm().getTree()); System.out.println(s); } }
A) elm elm elm elm
B) tree elm elm elm
C) tree elm tree elm
D) tree elm elm tree
E) Ocorrerá erro de compilação
F) Uma exceção sera lançada em tempo de execução

Pense
.
.
.
.
.
.
.
.
.
.
.
Depois de muito enrolar a cabeça por se tratar de um livro sério e publicado por um cara engenheiro da Sun percebi que o código estava errado e que minha resposta não se chocava com nenhuma saída.

Aqui está o código corrigido:

class Tree{ private static String tree = "tree "; String getTree(){return tree;} } public class Elm { private static String tree = "elm "; public static void main(String[] args) { new Elm().go(new Tree()); } void go(Tree t){ String s = t.getTree()+ Elm.tree + tree + (new Elm().getTree()); System.out.println(s);//tree - elm - elm - elm } String getTree() { //faltava esse método. return tree; } }

Anteriormente ele dava a letra D com respota mas depois de corrigido verifiquei que a resposta é a letra B.

Conclusão: Vejo agora mais do que nunca a importância de codificar as questões que te geram dúvida.

Eu criei esse tópico com a intenção incentivar aqueles que estão começando estudar para SCJP para que codifiquem. Codificar é tão importante quanto ler o livro da K&B.

Vlw t+.

Amigo isso dai não compila, não sei se você colo errado, do jeito que está ai é a resposta E…

Raff

A classe Elm não tem o metodo getTree()…

anderson.bonavides

É thingol realmente eu esqueci de herdar a classe Tree.
Aqui está o código correto como está no livro.

class Tree{ private static String tree = "tree "; String getTree(){return tree;} } public class Elm extends Tree{ private static String tree = "elm "; public static void main(String[] args) { new Elm().go(new Tree()); } void go(Tree t){ String s = t.getTree()+ Elm.tree + tree + (new Elm().getTree()); System.out.println(s); } }

sergiotaborda

anderson.bonavides:
Bem gente eu estava estudando e me deparei com a seguinte questão:

Qual será o resultado?

class Tree{ private static String tree = "tree "; String getTree(){return tree;} } public class Elm { private static String tree = "elm "; public static void main(String[] args) { new Elm().go(new Tree()); } void go(Tree t){ String s = t.getTree()+ Elm.tree + tree + (new Elm().getTree()); System.out.println(s); } }
A) elm elm elm elm
B) tree elm elm elm
C) tree elm tree elm
D) tree elm elm tree
E) Ocorrerá erro de compilação
F) Uma exceção sera lançada em tempo de execução

A resposta seria E: Erro de compilação. A classe Elm não tem um metodo geTree.
Se a resposta do gabarito não é essa algo está errado e a pergunta como um todo deve ser descartada pq não ha como saber o objetivo do autor. A resposta correta da pergunta tal como ela está fomulada é E.
No exame real pode realmente ser o proposito que o programador entenda o codigo antes de tentar saber o resultado do codigo. E a aopção erro de compilação é comum. Em outras palavras : se a opção “Ocorrerá erro de compilação” estiver listada começe por ver se não um erro no codigo. Só depois tente entender o que ele faz.

anderson.bonavides

Mas é como eu disse realmente o erro foi meu. Faltou a palavra EXTENDS na classe Elm.

:lol:

Desculpem o erro.

Então a resposta D se torna a correta.

Criado 31 de janeiro de 2008
Ultima resposta 4 de fev. de 2008
Respostas 8
Participantes 5