Ключевое слово this в Java

1. Ссылка на текущий объект

Иногда требуется, чтобы метод ссылался на вызвавший его объект. Ключевое слово this в Java используется в теле любого метода для ссылки на текущий объект.

Рассмотрим конструктор, в котором параметры имеют те же имена, что и переменные класса. В этом случае параметры перекрывают область видимости переменных класса и мы не можем напрямую обратится к переменным класса. Чтобы это сделать используется ключевое слово this:

Box(double width, double height, double depth) {
    this.width = width;
    this.height = height;
    this.depth = depth;
}

В этом примере использование ключевого слова this не является необходимым - можно обойтись и без него:

Box(double w, double h, double d) {
     this.width = w;
     this.height = h;
     this.depth = d;
}

2. Использование ключевого слова this() в конструкторе

Второй вариант использования ключевого слова this() - с его помощью можно вызвать один конструктор из другого. Вызов this() может находиться только в первой строчке конструктора:

public class Toy {
    String name;
    int cost;
    String manufacturer;
    int age;

    public Toy(String name, int cost, String manufacturer, int age) {
        this(name, cost, manufacturer);
        this.age = age;
        System.out.println("В конструкторе с четырьмя параметрами");
    }

    public Toy(String name, int cost, String manufacturer) {
        this();
        this.name = name;
        this.cost = cost;
        this.manufacturer = manufacturer;
        System.out.println("В конструкторе с тремя параметрами");
    }

    public Toy() {
        System.out.println("В конструкторе по умолчанию");
    }
}
public class ToyDemo {
    public static void main(String[] args) {
        Toy toy = new Toy("Кукла", 34, "Disney", 3);
    }
}

Результат программы:

В конструкторе по умолчанию
В конструкторе с тремя параметрами
В конструкторе с четырьмя параметрами
Read also:
Comments