Re: Метод возвращает ссылку на объект, а далее...
От: tantalum Россия  
Дата: 17.08.05 12:38
Оценка:
Здравствуйте, LearnJava, Вы писали:

LJ>Доброго Вам!


LJ>Имеется код:

LJ>
LJ>public class TestConsole
LJ>{
LJ>  public static void main(String[] args)
LJ>  {    
LJ>    Foo ob = new Foo();
LJ>    String str = ob.getString();    
LJ>    System.out.println(ob.getString());
LJ>    str = "321";
LJ>    System.out.println(ob.getString());
LJ>  }   
LJ>}

LJ>class Foo
LJ>{
LJ>  public String getString()
LJ>  {
LJ>    return m_Str;
LJ>  }
  
LJ>  private String m_Str = "123";
LJ>}
LJ>


LJ>И соответственно вывод:

LJ>
LJ>123
LJ>123
LJ>

LJ>Непонятно, почему не изменился объект Foo::m_Str? Ведь метод Foo::getString() возвращает ссылку, которой я присваиваю новую строку.

LJ>P.S.

LJ>А есть разница?
LJ>
LJ>private String m_Str = "123"; //Так
LJ>private String m_Str = new String("123"); //И так
LJ>



LJ>Спасибо!


Проще обьяснить так — хотя String и является Object, он передается по значению, а не по ссылке.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.