Что это за ключевое слово в Java?

Java является объектно-ориентированным языком, и одновременно может присутствовать много объектов, над теми, с которыми мы могли бы работать, здесь появляется ключевое слово «this», потому что оно помогает указать текущий экземпляр или текущий объект класса.

Следовательно, когда мы стремимся вызвать методы текущего класса, когда мы хотим вызвать конструктор текущего класса, вернуть текущий экземпляр из методов, передать текущий экземпляр в методы; во всех этих случаях это ключевое слово пригодится.

Примеры использования

  1. Синхронизированный блок в многопоточности использует это ключевое слово в качестве аргумента
  2. Перегрузка конструктора

Зачем использовать это ключевое слово в Java?

  • Эта переменная действует как конечная переменная в Java, то есть мы не можем присвоить никакое значение переменной this, это можно проверить, назначив значение ключевому слову this, и это приведет к ошибке компиляции.
  • 'this' также может использоваться для ссылки на статические члены (но это не должно быть сделано), потому что статические члены объявляются только один раз, то есть выделение памяти для них выполняется только один раз, и если мы попытаемся сделать манипуляции с использованием ключевого слова this, тогда всегда будет манипулировать данными, размещенными в этой ячейке памяти, а не создавать данные в новых ячейках памяти, как это делают объекты.
  • Это предотвращает задачу создания ненужных назначений переменных, и иногда нам не нужно создавать дополнительные переменные, ключевое слово «this», где бы оно ни использовалось, дает нам уверенность в том, что на текущий экземпляр ссылаются.

Важность этого ключевого слова

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

  • Предотвращает конфликт переменных и локальных переменных, можно ссылаться на переменную-член с помощью этого ключевого слова

public class Student (
int marks;
String subjectName;
//constructor
public Student(int marks, String subjectName)
(
this.marks = marks;
this.subjectName=subjectName;
)
public Student()
(
)
public static void main(String args())
(
Student s = new Student(1, "name");
)
)

  • Методы класса объекта также могут быть вызваны с помощью этого.

//consider a method shown here
public String getName()
(
return this.toString();
)

  • Это может использоваться в методах установки и получения, чтобы возвратить текущие экземпляры.

Public int getmarks()
(
return this.marks;
)
public void setMarks(int marks)
(
this.marks =marks;
)

Особые варианты использования этого ключевого слова

Вот некоторые варианты использования этого ключевого слова, описанные ниже с реализацией:

1. Используйте С-в поле

public class PointCoordinates (
public int xval = 0;
public int yval = 0;
//constructor
public PointCoordinates (int a, int b) (
xval = a;
yval = b;
)
public static void main(String args())
(
)
)

Но это можно было бы написать так:

public class PointCoordinates (
public int xval = 0;
public int yval= 0;
//constructor
public PointCoordinates (int xval, int yval) (
this.xval = xval;
this.yval = yval;
)
public static void main(String args())
(
)
)

Так что это было то, что мы объяснили и в последнем разделе, где видно, что соглашения об именах для одного типа поля данных могут быть одинаковыми, если мы используем ключевое слово this

Следовательно, разработчик не должен отслеживать или отображать диаграмму переменных для одного и того же вида логического поля данных.

2. Вызов конструктора с использованием этого ключевого слова

Мы можем использовать это ключевое слово внутри конструктора и вызывать другой конструктор из этого же класса. Это также называется явным вызовом конструктора.

Давайте рассмотрим пример, показанный ниже для того же самого -

public class Square (
private int x;
private int side;
public Square () (
this(1);
)
public Square (int side) (
this(0, side);
)
public Square (int x, int side) (
this.x = x;
this.side = side;
)
public static void main(String args())
(
)
)

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

Эти конструкторы инициализируют некоторые переменные-члены, компилятор получает здесь указание на вызов конструктора через количество параметров, используемых внутри методов.

3. Возвращение текущего экземпляра класса с использованием этого ключевого слова

class Rectangle
(
int height;
int width;
Rectangle()
(
height = 10;
width = 20;
)
//Method to return current class instance
Rectangle getObject()
(
return this;
)
public void print()
(
System.out.println(height+", "+ width);
)
public static void main(String() args)
(
Rectangle object = new Rectangle();
object.getObject().print();
)
)

Итак, в показанном выше примере видно, что текущий объект возвращается из метода-получателя, и в этом случае был вызван конкретный метод «печать».

4. Используйте в качестве параметра метода

class Rectangle
(
int height;
int width;
Rectangle()
(
height = 10;
width = 20;
)
void getObject()
(
print(this);
)
public void print(Rectangle object)
(
System.out.println(object.height + ", " + object.width);
)
public static void main(String() args)
(
Rectangle object = new Rectangle();
object.getObject();
)
)

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

Вывод

Мы видели различные варианты использования здесь, ссылаясь на варианты против использования этого ключевого слова в Java и где использовать, а где не использовать, эти условия были сформулированы в явном виде.
Ключевое слово "this" распространено среди всех языков программирования, в том числе и в основанных на javascript инфраструктурах.
Ключевое слово «this» может стать непроизводительным, если его не правильно понять, и это поможет разработчикам, если его правильно понять.

Рекомендуемые статьи

Это руководство по этому ключевому слову в Java. Здесь мы обсуждаем важность, особенности использования и примеры этого ключевого слова в Java вместе с его реализацией кода. Вы также можете посмотреть следующие статьи, чтобы узнать больше

  1. Объект на Java
  2. Инкапсуляция в JavaScript
  3. Статическое ключевое слово в Java
  4. Перегрузка и переопределение в Java
  5. Функция и правила переопределения в Python