• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Mastering this Keyword in Java: 5 Essential Uses Explained

Sascha Онлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,574
Баллы
155

Understanding this Keyword in Java


Java provides a powerful reference variable called this, which plays crucial role in object-oriented programming. It refers to current object — the instance on which a method or constructor is invoked. In this blog post, we will explore six common usages of this keyword each illustrated with examples

1. Refer Current Class Instance Variable


When local variables (method parameters or other variables) share the same name as instance variables, this helps to differentiate between them.


public class Person {
private String name;
private int age;

public Person(String name, int age) {
// Without 'this', the parameters shadow the fields
this.name = name; // Refers to the instance variable
this.age = age;
}

public void printInfo() {
System.out.println("Name: "+this.name+", Age: "+this.age);
}
}




Here this.name and this.age refer to the objects fields, while name and age on right-hand side refer to constructor parameters.

2. Invoke Current Class Method (Implicitly)


You can use this to call another method of the same class. Although implicit calls normally work without this, using it can improve code readability or resolve naming conflicts.


public class Calculator {
public int square(int x) {
return x * x;
}

public int sumOfSquares(int a, int b) {
// Explicitly using 'this' to call square()
return this.square(a) + this.square(b);
}
}




In the example above, this.square() clearly indicates that square is a method on the current object.

3. Invoke Current Class Constructor (this())


You can chain constructors within the same class using this(). It can call the default constructor or a parameterized one, simplifying object initialization.


public class Box {
private int length, width, height;

// Default constructor
public Box() {
this(1, 1, 1); // Calls the parameterized constructor
}

// Parameterized constructor
public Box(int length, int width, int height) {
this.length = length;
this.width = width;
this.height = height;
}
}




Notice that this(1, 1, 1) must be the first statement in default constructor.

4. Pass this as an Argument in Method Call


Sometimes we need to pass current object to another method or class. We can achieve this by passing this.


public class Event {
public void registerListener(Listener listener) {
listener.onEvent(this);
}
}

public interface Listener {
void onEvent(Event e);
}




Here, this refers to the Event instance being registered.

5. Pass this as an Argument in Constructor Call


Similarly, you can pass the current object to another object's constructor.


public class Engine {
private Car car;

public Engine(Car car) {
this.car = car;
}
}

public class Car {
private Engine engine;

public Car() {
engine = new Engine(this); // Passes the current Car instance
}
}




In this snippet, Car instance is passed to Engine constructor.

Conclusion


The this keyword in Java provides clarity and control when working with object instances. It helps in differentiating between variables and chaining constructors. Using this enhances code readability and robustness.



Источник:

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу