Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Классы и Объекты
Раздел: Больше на Классах
Используя это Ключевое слово
Домашняя страница > Изучение Языка Java > Классы и Объекты

Используя это Ключевое слово

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

Используя this с Полем

Наиболее распространенная причина использования this ключевое слово - то, потому что поле затенено параметром конструктора или методом.

Например, Point class был записан как это

public class Point {
    public int x = 0;
    public int y = 0;
        
    //constructor
    public Point(int a, int b) {
        x = a;
        y = b;
    }
}

но это, возможно, было записано как это:

public class Point {
    public int x = 0;
    public int y = 0;
        
    //constructor
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

Каждый параметр теням конструктора одно из полей объекта — в конструкторе x локальная копия первого параметра конструктора. Обратиться к Point поле x, конструктор должен использовать this.x.

Используя this с Конструктором

Изнутри конструктора можно также использовать this ключевое слово, чтобы вызвать другого конструктора в том же самом class. Выполнение так вызывают явным вызовом конструктора. Вот другой Rectangle class, с различной реализацией от того в разделе Объектов.

public class Rectangle {
    private int x, y;
    private int width, height;
        
    public Rectangle() {
        this(0, 0, 0, 0);
    }
    public Rectangle(int width, int height) {
        this(0, 0, width, height);
    }
    public Rectangle(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }
    ...
}

Этот class содержит ряд конструкторов. Каждый конструктор инициализирует некоторых или все задействованные переменные прямоугольника. Конструкторы обеспечивают значение по умолчанию для любой задействованной переменной, начальное значение которой не обеспечивается параметром. Например, конструктор без параметров вызывает конструктора с четырьмя параметрами с четыре, 0 значений и конструктор с двумя параметрами вызывают конструктора с четырьмя параметрами с два 0 значений. Как прежде, компилятор определяет который конструктор вызвать, основанный на числе и типе параметров.

Если существующий, вызов другого конструктора должен быть первой строкой в конструкторе.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Возврат Значения от Метода
Следующая страница: Управление Доступом к Элементам Класса