Atribuicao de Strings

4 respostas
D

Galera, beleza?

Tipo, não entendi a resposta… 8O

O código é o seguinte …

public class Base {
  private void test() {
    String a = "One";
    String b = a;
    a = null;
    System.out.println(b);  
  }

  static public void main(String[] a) {
    bew Base().test();
  }

}

E a resposta é One o que pra mim deveria ser null.

Agora porque?

donatinho

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Reifel[/color][/size] :joia:

4 Respostas

C

Porque nessa hora:

String b = a;

b passa a referenciar a, e imprime b( System.out.println(b); ) e não a( null ).

W
então vamos por parte

aqui estão os atributos:, certo??

String a;

String b;

na linha(String a=“One”)agora o atributo “a” esta apontando para um endereço de memória q contém o valor “One”…certo??:

na outra linha(String b = a;) “b” esta com a mesma referencia do atrbuto "b"
ou seja…“a” e “b” possuem o mesmo valor… a referencia deles estão apontando para o mesmo valor
imagine algo do tipo:
A-----|
-------|–(“One”)
B-----|

e na linha( a = null;) imagine o “b” continuando apontado para “One” e o “a” sendo referenciado para NULL…
A-----|—(null)

B-----|—(“One”)

entendeu??..nõ sou muito bom pra isso…mas se alguém achar q esta errado me ajude explicar pro nosso amigo aqui!!..valeuu!!!

…mas espero ter ajudado

S

São variáveis locais, não atributos.
Mas sim, é exatamente isso.

Você só anulou a referência de a, logo b continua apontando pra “One”.

D

Valeu galera, muito obrigado!

See ya

donatinho

Criado 10 de setembro de 2006
Ultima resposta 11 de set. de 2006
Respostas 4
Participantes 4