#java
Встретил такой код public EWrapperImpl() { readerSignal = new EJavaSignal(); clientSocket = new EClientSocket(this, readerSignal); } При создании экземпляра clientSocket передаем в конструктор this. Что это? Экземпляр обьета? Какого обьекта ... EWrapperImpl? Или EClientSocket?
Ответы
Ответ 1
Ключевое слово this всегда является ссылкой на экземпляр класса в котором оно используется. В вашем случае это EWrapperImpl Надо заметить, что это правило действует и для вложенных классов. Например: public class Outher { public Outher() { //в этом месте this - это ссылка на класс Outher } class Inner { public Inner() { //в этом месте this - это ссылка на класс Inner //а чтобы во внутреннем классе получить ссылку на внешний класс //надо делать так ИмяВнешнегоКласса.this, т.е так: //Outher.this } } }Ответ 2
this – это ссылка на текущий объект – объект, чей метод или конструктор вызывается. Насколько я понимаю, Ваша полная конструкция выглядит так: public class EWrapperImpl implements EWrapper { private EReaderSignal readerSignal; private EClientSocket clientSocket; protected int currentOrderId = -1; public EWrapperImpl() { readerSignal = new EJavaSignal(); clientSocket = new EClientSocket(this, readerSignal); } } Здесь this – это ссылка на экземпляр класса EWrapperImpl.
Комментариев нет:
Отправить комментарий