Što je ova ključna riječ na Javi?

Java je objektno orijentirani jezik i istovremeno može biti prisutno mnogo objekata, na onima na kojima bismo mogli raditi, "ova" ključna riječ ovdje dolazi na slici jer pomaže usmjeriti trenutnu instancu ili trenutni objekt klase.

Prema tome, kada želimo pozvati metode trenutne klase, kada želimo pozvati konstruktor trenutne klase, vratiti trenutnu instancu iz metoda, proslijediti trenutnu instancu metodama; u svim tim slučajevima ova ključna riječ dolazi korisno.

Primjeri slučajeva upotrebe

  1. Sinkronizirani blok u multithreadingu koristi ovu ključnu riječ kao argument
  2. Preopterećenje konstruktora

Zašto koristiti ovu ključnu riječ na Javi?

  • varijabla 'this' djeluje kao konačna varijabla u javi, tj. ne možemo dodijeliti nijednu vrijednost varijabli 'this', to se može unakrsno provjeriti dodjeljivanjem vrijednosti ključnoj riječi 'this' i to će dovesti do pogreške u sastavljanju.
  • 'ovo' se može koristiti i za upućivanje statičkih članova (ali to neće biti učinjeno), jer se statički članovi deklarišu samo jednom, tj. dodjela memorije koja im je učinjena je samo jednom, a ako pokušamo izvršiti manipulacije pomoću ključne riječi 'ovo', tada to uvijek će manipulirati podacima smještenim na toj memorijskoj lokaciji, a ne stvaranjem podataka na novim memorijskim mjestima, što čine objekti.
  • To sprječava zadatak nepotrebnih dodjeljivanja varijabli, a ponekad ne trebamo stvarati i dodatne varijable. Ova ključna riječ, bez obzira gdje se koristi, daje sigurnost na koju se poziva trenutna instanca.

Važnost ove ključne riječi

Primjeri u nastavku pokazuju da za određene osobine moramo stvoriti varijable s različitim imenima, one se mogu jednostavno dodijeliti u konstruktoru tijekom inicijalizacije objekta pomoću ove ključne riječi.

  • Sprječava sukob članova i varijable lokalne varijable, pomoću ove ključne riječi može se uputiti varijabla člana.

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

  • Pomoću ove se također mogu pozvati metode objektne klase.

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

  • Ovo se može koristiti u setter i getter metodama za vraćanje trenutnih instanci.

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

Posebne uporabe ove ključne riječi

Evo nekoliko načina upotrebe ove ključne riječi objašnjene u nastavku s provedbom:

1. Koristite With-in Field

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

Ali moglo se napisati ovako:

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

Dakle, to je nešto što smo objasnili i u posljednjem odjeljku, gdje se vidi da konvencije o imenovanju za jednu vrstu podatkovnog polja mogu biti ujednačene ako koristimo ključnu riječ 'ovaj'.

Dakle, programer ne treba pratiti ili mapirati grafikon varijabli za istu vrstu logičkog polja podataka.

2. Poziv konstruktora pomoću ove ključne riječi

Ovu ključnu riječ možemo koristiti unutar konstruktora i odatle pozvati drugog konstruktora, u istoj klasi. To se također naziva eksplicitnim pozivom konstruktora.

Razmotrimo niže prikazane primjere za isto -

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

Ovdje su tri konstruktora na slici, imajte na umu da bi zadani konstruktor trebao biti izričito postavljen kada radimo preopterećenje konstruktora.

Ti konstruktori inicijaliziraju neke članske varijable, ovdje prevoditelj dobiva indikaciju o pozivu konstruktora putem broja parametara koji se koriste u metodama.

3. Vraćanje instancije trenutne klase pomoću ove ključne riječi

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

Dakle, u gore prikazanom primjeru, može se vidjeti kako se trenutni objekt vraća metodom getter-a, a na toj se instance poziva određena metoda "print".

4. Koristite kao parametar metode

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

U primjeru se navodi kako se trenutni objekt prenosi na metodu koja ovaj objekt može koristiti za njegovo prilagođeno korištenje.

Zaključak

Ovdje smo vidjeli razne slučajeve uporabe, navodeći varijante upotrebe ove ključne riječi u javi i gdje koristiti, a gdje ne koristiti, ti su uvjeti postavljeni na izričit način.
Ova je ključna riječ uobičajena među svim programskim jezicima, a i u okvirima temeljenim na Javascript-u 'ovo' pronalazi ključnu ulogu.
Ova ključna riječ može postati pretjerana ako se ne razumije dobro, a programerima je od velike pomoći ako se pravilno shvati.

Preporučeni članci

Ovo je vodič za ovu ključnu riječ u javi. Ovdje raspravljamo o važnosti, posebnoj upotrebi i primjerima ove ključne riječi u Javi, zajedno s njenom implementacijom koda. Možete pogledati i sljedeće članke da biste saznali više -

  1. Objekt u Javi
  2. Inkapsulacija u JavaScriptu
  3. Statička ključna riječ na Javi
  4. Preopterećenje i preglasavanje u Javi
  5. Funkcija i pravila preglasavanja u Pythonu

Kategorija: