Рубрики
Без рубрики

Java это ключевое слово

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

Автор оригинала: Pankaj Kumar.

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

  • Java это ключевое слово возвращает ссылку на текущий объект.
  • Мы можем получить доступ к переменной объекта, вызвать метод или конструктор текущего объекта, используя это ключевое слово.
  • Ключевое слово Java “this” может использоваться для ссылки на любой элемент текущего объекта из метода экземпляра или конструктора.
  • это ключевое слово в основном используется, чтобы избежать путаницы между атрибутом класса и параметром. Например, если параметр функции-члена имеет то же имя, что и имя переменной объекта, то функциональность может работать неправильно.

Java этот пример ключевого слова

Допустим, у нас есть класс, как показано ниже.

public class  Item{ 
  String name; 

  // Constructor with a parameter and this keyword
  public Item(String name) { 
    this.name = name; 
  } 

  // Call the constructor
  public static void main(String[] args) { 
    Item Obj = new Item("car"); 
    System.out.println(Obj.name);
  } 
} 

Вывод с “этим” в качестве ссылки на текущий объект

Код выводит название товара как “автомобиль”. Теперь давайте посмотрим, что произойдет, когда мы удалим ключевое слово “this” из конструктора.

public class  Item{ 
  String name; 

  // Constructor with a parameter and without this keyword
  public Item(String name) { 
    name = name; 
  } 

  // Call the constructor
  public static void main(String[] args) { 
    Item Obj = new Item("car"); 
    System.out.println(Obj.name);
  } 
} 

Вывод без “этого” в качестве ссылки на текущий объект

Вывод без ключевого слова “this”

В приведенном выше примере показано применение этой переменной для доступа к атрибуту объекта.

Мы не можем создать две локальные переменные с одинаковыми именами.

Однако разрешается создавать одну переменную экземпляра и одну локальную переменную или параметр метода с одинаковым именем.

В этом случае локальная переменная скроет переменную экземпляра, которая называется Затенение переменной .

Чтобы решить эту проблему, мы используем ключевое слово this с полем, указывающим на переменную экземпляра вместо локальной переменной.

Общее использование ключевого слова “this”

  1. Ключевое слово Java “this” может использоваться для ссылки на переменную экземпляра текущего класса.
  2. Мы можем использовать эту функцию() для вызова текущего конструктора класса. Мы также можем передавать параметры в этом операторе ().
  3. Ключевое слово Java “this” может использоваться для вызова текущего метода класса (неявно).
  4. Ключевое слово “this” может быть передано в качестве аргумента при вызове метода.
  5. Мы можем использовать ключевое слово “this” для возврата текущего экземпляра класса.
  6. Мы можем использовать ключевое слово “this” для доступа к атрибутам объекта в случае затенения переменных.

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

Ключевое слово Copy-Конструктор и метод отображения () “это”

package com.journaldev.examples;

public class Blog {
	String name;
	int popularity;
        
        // parameterized constructor
	public Blog(String name, int popularity) {
		this.name = name;
		this.popularity = popularity;
	}

	// Copy-Constructor
	public Blog(Blog b) {
		this.popularity = b.popularity;
		this.name = b.name;
	}

	public void display() {
		System.out.println("name: " + this.name);
		System.out.println("popularity: " + this.popularity + " %");
	}

	public static void main(String[] args) {
		// parameterized constructor call
		Blog obj1 = new Blog("JournalDev", 100);
		obj1.display();
		// Copy-Constructor call
		Blog obj2 = new Blog(obj1);
		obj2.display();

	}

}

Вывод метода Copy-Constructor & display()

Вывод конструктора Копирования

В приведенном выше коде мы видели применение ключевого слова “this” в конструкторе копирования и методе display() .

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

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

package com.journaldev.examples;

public class Data {

	Data() {
		System.out.println("default constructor");
	}

	Data(int i) {
		this();
		System.out.println("int parameter constructor");

	}

	Data(String s) {
		this(10);
		System.out.println("string parameter constructor");

	}

	public static void main(String[] args) {
		Data d = new Data(20);
		System.out.println("------");
		Data d1 = new Data("Hi");
	}

}

Вывод :

default constructor
int parameter constructor
------
default constructor
int parameter constructor
string parameter constructor

Используя это ключевое слово для вызова метода объекта

Давайте рассмотрим пример вызова метода объекта с использованием этого ключевого слова.

package com.journaldev.examples;

public class Data {
	
	Data() {
		this.foo();
	}

	private void foo() {
		System.out.println("foo method");
	}

	public static void main(String[] args) {
		Data d = new Data();
	}
}

Использование этого ключевого слова в аргументе метода

package com.journaldev.examples;

public class Data {

	private int id;

	public Data(int id) {
		this.id = id;
		bar(this);
	}

	private void bar(Data data) {
		System.out.println(data.id);
	}

	public static void main(String[] args) {
		Data d = new Data(20);
	}
}

Java это ключевое слово для возврата текущего объекта

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

private Data bar(Data data) {
	System.out.println(data.id);
	return this;
}

Вывод

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