Использование super и this
Ключевое слово super используется для вызова конструктора суперкласса и для доступа к члену суперкласса. Например:
super(список_параметров); /* вызов конструктора суперкласса с передачей параметров */
super.i = n; /* присваивание значения атрибуту суперкласса */
super.method(); // вызов метода суперкласса
Вторая форма super подобна ссылке this на экземпляр класса. Третья форма специфична для Java и обеспечивает вызов переопределенного метода, причем если в суперклассе этот метод не определен, то будет осуществляться поиск по цепочке наследования до тех пор, пока метод не будет найден. Каждый экземпляр класса имеет неявную ссылку this на себя, которая передается также и методам. После этого можно писать this.priceхотя и необязательно.
Следующий код показывает, как, используя this, можно строить одни конструкторы на основе других.
// пример # 3 : this в конструкторе : Locate3D.java
class Locate3D {
private int x, y, z;
public Locate3D(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
public Locate3D() {
this(-1, -1, -1);
}
}
В этом классе второй конструктор для завершения инициализации объекта обращается к первому конструктору. Такая конструкция применяется в случае, когда в классе имеется несколько конструкторов и требуется добавить конструктор по умолчанию.
Ссылка thisиспользуется в методе для уточнения того, о каких именно переменных x и y идет речь в каждом отдельном случае, а конкретно для доступа к переменной класса, если в методе есть локальная переменная с тем же именем. Инструкция this должна быть единственной в вызывающем конструкторе и быть первой по счету выполняемой операцией.
Дата добавления: 2015-04-05; просмотров: 945;