Java this в конструкторе
При изучении книги Герберта Шилдта наткнулся на следующий пример:
class MyThread implements Runnable {
Thread thrd;
MyThread(String name) {
thrd = new Thread(this, name);
}
...
}
Непонятен фрагмент с созданием объекта Thread, где используется this. Мне кажется нелогичным передача this в качестве аргумента, ведь сам объект вроде как еще не создан, раз мы находимся в конструкторе.
Помогите, пожалуйста, разобраться с данным противоречием.
Ответы (1 шт):
В момент работы конструктора объект уже создан, просто еще не проинициализирован. Поэтому использование this в конструкторе вполне допустимо.
В передаче this аргументом куда-нибудь тоже нет ничего противозаконного, т. к. объект передаётся по ссылке, и все изменения, произведенные в нем в ходе дальнейшей работы конструктора, будут видны там, куда вы его передаете.