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+.