![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| bogomol |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 7.3.2007 Репутация: нет Всего: нет |
И что это вообще такое?
|
|||
|
||||
| jManiak |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 6.2.2007 Где: Санкт-Петербург Репутация: нет Всего: 1 |
this - это ссылка на самого себя.
Т.е. Если мы используем this в методе какого-то объекта, то это будет ссылка на этот самый объект. Используется например при создании JOptionPane, когда нужно получить ссылку на объект который будет родителем для него. |
|||
|
||||
| y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
cамое частое использование - это для передачи параметров, которые имеют точно такое же название как и поля класа, в этом случае мы пишем this.myParam = myParam;
-------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
| LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Методы в Java бывают статические, и не статические. Основное различие между ними состоит в том, что в не статические методы всегда неявно передается ссылка на объект у которого этот метод был вызыван. Так вот this - это способ эту ссылку получить. Эта ссылка всегда гарантированно не равно null.
Например есть у нас такой код:
при обращении к str мы неявно обращаемся к this.str. Иногда, как писал y3u, это обращение требуется сделать явно:
Есть еще одно использование ссылки this, при работе с внутренними не статическим классами. Дело в том, что внутренний не статический класс содержит ссылку на экземпляр родительского класса, вот например:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Добавлю от себя.
Ключевое слово this ещё используется, если в одном конструкторе требуется вызвать другой конструктор этого же класса.
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Jubei |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 7.7.2005 Где: Рига,Латвия Репутация: нет Всего: нет |
Хитро Это сообщение отредактировал(а) Jubei - 23.3.2007, 15:56 |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Вот пример из класса Date
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Jubei |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 7.7.2005 Где: Рига,Латвия Репутация: нет Всего: нет |
Понятно, спасибо за пример !
|
|||
|
||||
| olegrolik |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Что в данном примере делает "this"?
display=Display.getDisplay(this); Пример из J2ME. Извиняюсь за оффтоп. |
|||
|
||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
olegrolik
Передает в метод ссылку на объект, в контексте которого вызван метод. Это сообщение отредактировал(а) Maksym - 23.3.2007, 17:58 |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Конкретнее узнать, что представляет this в твоём примере можно, если посмотреть, в методе какого класса находится приведённая строка.
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| olegrolik |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
nornad
Примерно так Также про класс Display написано: There is exactly one instance of Display per MIDlet and the application can get a reference to that instance by calling the getDisplay() method. The application may call the getDisplay() method at any time during course of its execution. The Display object returned by all calls to getDisplay() will remain the same during this time. |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
В данном примере this даёт ссылку на экзепляр MIDlet, для которого необходимо получить экземпляр Display. Display.getDisplay(MIDlet midlet) - статический метод для получения Display. Из-за его статичности и требуется передача ссылки на объект, от которого надо получить Display. Вроде бы всё сказал. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| hamsterKSU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 401 Регистрация: 20.10.2006 Где: Украина, Херсон Репутация: 1 Всего: 11 |
что могу сказать по этому поводу - книги надо читать с начала и до середины, а потом в произвольном порядке
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |