Co je toto klíčové slovo v Javě?

Java je objektově orientovaný jazyk a může být přítomno mnoho objektů najednou, na těch, které bychom mohli provozovat, na obrázku přichází „toto“ klíčové slovo, protože pomáhá ukázat aktuální instanci nebo aktuální objekt třídy.

Proto, když se podíváme na vyvolání metod aktuální třídy, když chceme vyvolat konstruktor aktuální třídy, vraťte aktuální instanci z metod, předejte aktuální instanci metodám; ve všech těchto případech se toto klíčové slovo hodí.

Příklad použití-případy

  1. Synchronizovaný blok v multithreadingu používá toto klíčové slovo jako argument
  2. Přetížení konstruktoru

Proč používat toto klíčové slovo v Javě?

  • 'tato' proměnná funguje jako konečná proměnná v java, tj. nemůžeme přiřadit žádnou hodnotu této 'proměnné', to lze křížově zkontrolovat přiřazením hodnoty k 'tomuto' klíčovému slovu, což povede k chybě kompilace.
  • 'this' lze použít také pro odkazování statických členů (ale to se neděje), protože statické členy jsou deklarovány pouze jednou, tj. přidělení paměti jim je jednou, a pokud se pokusíme manipulovat pomocí 'tohoto' klíčového slova, pak je bude vždy manipulovat s daty umístěnými na tomto paměťovém místě, spíše než vytvářet data na nových paměťových místech, které objekty dělají.
  • Tím se zabrání zbytečnému přiřazování proměnných a občas také nemusíme vytvářet další proměnné. „Toto“ klíčové slovo, kdekoli je použito, nám dává jistotu, že se odkazuje na aktuální instanci.

Význam tohoto klíčového slova

Níže uvedené příklady ukazují, že pro určité vlastnosti musíme vytvořit proměnné s různými jmény, které lze jednoduše přiřadit k konstruktoru během inicializace objektu pomocí tohoto klíčového slova.

  • Zabraňuje konfliktu členských proměnných a názvů lokálních proměnných, pomocí tohoto klíčového slova lze odkazovat na členské proměnné.

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");
)
)

  • Pomocí této metody lze také vyvolat metody třídy objektů.

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

  • To lze použít v metodách setter a getter pro vrácení aktuálních instancí.

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

Zvláštní použití tohoto klíčového slova

Zde uvádíme několik příkladů použití tohoto klíčového slova s ​​implementací:

1. Použijte pole v poli

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())
(
)
)

Ale mohlo to být napsáno takto:

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())
(
)
)

Takže to bylo něco, co jsme vysvětlili také v poslední části, kde je vidět, že pojmenovací konvence pro jeden druh datového pole mohou být jednotné, pokud použijeme klíčové slovo „toto“.

Vývojář tedy nemá sledovat ani mapovat graf proměnných pro stejný druh logického datového pole.

2. Involace konstruktorů pomocí tohoto klíčového slova

Toto klíčové slovo můžeme použít uvnitř konstruktoru a odtud zavolat jiného konstruktoru, ve stejné třídě. Tomu se také říká explicitní vyvolání konstruktoru.

Podívejme se na příklad uvedený níže pro totéž -

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())
(
)
)

Na obrázku jsou tři konstruktéři. Upozorňujeme, že výchozí konstruktor by měl být explicitně umístěn, když děláme přetížení konstruktoru.

Tito konstruktéři inicializují některé členské proměnné, kompilátor zde získává indikaci o vyvolání konstruktoru pomocí počtu parametrů použitých uvnitř metod.

3. Vrácení aktuální instance třídy pomocí tohoto klíčového slova

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();
)
)

Ve výše uvedeném příkladu je tedy vidět, že aktuální objekt se vrací z getterové metody a v této instanci byla vyvolána konkrétní metoda „print“.

4. Použijte jako parametr metody

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();
)
)

Příklad citoval, jak je aktuální objekt předáván metodě, která může tento objekt použít pro vlastní použití.

Závěr

Viděli jsme různé případy použití, citovali jsme varianty proti použití tohoto klíčového slova v javě a kde je použít a kde nepoužívat, tyto podmínky byly výslovně stanoveny.
„toto“ klíčové slovo je běžné ve všech programovacích jazycích, v rámcích založených na javascriptu „toto“ najde klíčovou roli.
„toto“ klíčové slovo se může stát režijním, pokud není dobře porozuměno, a pokud je správně pochopeno, je pro vývojáře velkou pomocí.

Doporučené články

Toto je průvodce tímto klíčovým slovem v jazyce Java. Zde diskutujeme důležitost, konkrétní použití a příklady tohoto klíčového slova v javě spolu s jeho implementací kódu. Další informace naleznete také v následujících článcích

  1. Objekt v Javě
  2. Zapouzdření do JavaScriptu
  3. Statické klíčové slovo v Javě
  4. Přetížení a přetečení v Javě
  5. Funkce a pravidla potlačení v Pythonu

Kategorie: