certo…
acho q fiquei um cado bitolado…e confundi - como vc disse - variaveis de referencia com objetos…
certo…
acho q fiquei um cado bitolado…e confundi - como vc disse - variaveis de referencia com objetos…
[quote=pardal_nb]certo…
acho q fiquei um cado bitolado…e confundi - como vc disse - variaveis de referencia com objetos…[/quote]
Esse assunto realmente costuma gerar confusões… deve ser um dos prediletos dos elaboradores do exame. :-o
Fala galera blz. li o tópico e tbm fiquei com uma dúvida , olhando este código:
class CardBoard {
public static void main(String[] args) {
CardBoard c1 = new CardBoard();
CardBoard c2 = new CardBoard();
CardBoard c3 = null;
CardBoard cb=c2;
System.out.println("Cb=" + cb);
System.out.println("C2=" + c2);
c1 = null;
cb=null;
System.out.println("Depois que cb recebe null");
System.out.println("Cb=" + cb);
System.out.println("C2=" + c2);
System.out.println("C1=" + (c1==null));
System.out.println("C2=" + (c2==null));
System.out.println("C3= "+ (c3==null));
System.out.println("Cb= "+ (cb==null));
}
}
A minha dúvida é a seguinte quando faço cb=c2, significa que cb aponta para o mesmo objeto que c2 certo?? Agora então quando atribui cb=null, e se eles estão apontando para o mesmo objeto, porque tbm o c2 nao ficou null??
Att
[quote=danielbussade]Fala galera blz. li o tópico e tbm fiquei com uma dúvida , olhando este código:
class CardBoard {
public static void main(String[] args) {
CardBoard c1 = new CardBoard();
CardBoard c2 = new CardBoard();
CardBoard c3 = null;
CardBoard cb=c2;
System.out.println("Cb=" + cb);
System.out.println("C2=" + c2);
c1 = null;
cb=null;
System.out.println("Depois que cb recebe null");
System.out.println("Cb=" + cb);
System.out.println("C2=" + c2);
System.out.println("C1=" + (c1==null));
System.out.println("C2=" + (c2==null));
System.out.println("C3= "+ (c3==null));
System.out.println("Cb= "+ (cb==null));
}
}
A minha dúvida é a seguinte quando faço cb=c2, significa que cb aponta para o mesmo objeto que c2 certo?? Agora então quando atribui cb=null, e se eles estão apontando para o mesmo objeto, porque tbm o c2 nao ficou null??
Att[/quote]
O que vc fez foi anular a referência cb, o objeto ainda existe e continua sendo referenciado por c2, ou seja, vc tinha duas referências para um único objeto e anulou uma delas, a outra continua apontando para o objeto.
Exato. Pessoal, não podemos confundir referências com objetos! Apesar de serem termos relacionados, são distintos.
Qual livro é esse?
Use a cabeça java? Eu tenho e não consigui achar… aliás, achei alguns erros só no primeiro capítulo do livro…
[quote=dedejava]Qual livro é esse?
Use a cabeça java? Eu tenho e não consigui achar… aliás, achei alguns erros só no primeiro capítulo do livro…[/quote]
é o livro guia para a certificação da Kath e Bert
[quote=pardal_nb][quote=dedejava]Qual livro é esse?
Use a cabeça java? Eu tenho e não consigui achar… aliás, achei alguns erros só no primeiro capítulo do livro…[/quote]
é o livro guia para a certificação da Kath e Bert [/quote]
Complementando: SCJP versão 5
Errata da editora (pode ser visualizada através desse link):
Ou seja, o valor de CardBoard.story é 200, não 5. Com esse valor, a resposta C (2) é a correta.
Caso resolvido!
Nossa… eu comprei o use a cabeça Java achando que era esse pra certificação
Até estranhei por estar achando meio fácil demais o livro