Главная » Java » Ссылка this Java

0

 

В некоторых случаях в теле метода текущего объекта удобно оперировать ссылкой на этот объект – например, если текущий объект должен сохранить себя в некоем списке объектов. Методы способны обращаться к объекту, которому они принадлежат, посредством косвенной ссылки, обозначаемой служебным словом this, поскольку таковая всегда указывает на текущий объект.

Следующее объявление метода Clеаг равнозначно приведенному выше:

 

public void clear() {

       this.x = 0;

       this.y = 0;

}

 

Обычно слово this используют при необходимости вызова других методов с передачей ссылки на текущий объект в качестве параметра. Нередко ссылку this применяют и непосредственно в контексте метода для явного именования членов текущего объекта. Вот как может выглядеть еще один метод класса Роint, названный нами move, который изменяет значения координат точки, присваивая полям Х и у объекта величины, переданные в качестве аргументов:

 

public void move(double х, double у) {

       this.x = х;

       this.y = у;

}

 

Ссылка this в данном случае используется для уточнения того, о каких именно переменных Х и у идет речь в каждом отдельном случае. Употребление в объявлении метода move наименований параметров Х и у вполне оправданно, поскольку они предназначены для хранения передаваемых аргументов-координат. Но эти имена совпадают с идентификаторами полей класса и полностью перекрывают их в контексте метода. Если написать просто x = x, это будет означать, что значение параметра x присваивается тому же параметру , но никак не одноименному полю класса, чего нам как раз и хотелось бы добиться. А выражение this.x позволяет сослаться на поле x текущего объекта и не имеет отношения к параметру x.

Упражнение 1.8. Пополните класс Роint методом, который присваивает значения координат точки текущего объекта полям объекта Роint, передаваемого в виде аргумента.

 

 

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии