Che cos'è questa parola chiave in Java?

Java è un linguaggio orientato agli oggetti e possono essere presenti molti oggetti contemporaneamente, su quelli su cui potremmo operare, la parola chiave "questa" qui appare nell'immagine perché aiuta a indicare l'istanza corrente o l'oggetto corrente di una classe.

Quindi quando cerchiamo di invocare metodi della classe corrente, quando vogliamo invocare il costruttore della classe corrente, restituiamo l'istanza corrente dai metodi, passiamo l'istanza corrente ai metodi; in tutti questi casi questa parola chiave è utile.

Esempi di casi d'uso

  1. Il blocco sincronizzato nel multithreading utilizza questa parola chiave come argomento
  2. Sovraccarico del costruttore

Perché usare questa parola chiave in Java?

  • La variabile 'this' funge da variabile finale in java, ovvero non possiamo assegnare alcun valore alla variabile 'this', questo può essere verificato incrociato assegnando un valore alla parola chiave 'this' e porterà ad un errore di compilazione.
  • 'this' può essere usato anche per riferirsi a membri statici (ma non deve essere fatto) perché i membri statici vengono dichiarati una sola volta, cioè l'allocazione di memoria fatta a loro è una volta sola e se proviamo a fare manipolazioni usando la parola chiave 'this' allora manipolerà sempre i dati collocati in quella posizione di memoria piuttosto che creare dati in nuove posizioni di memoria, come fanno gli oggetti.
  • Questo impedisce il compito di assegnare assegnazioni non necessarie alle variabili e, a volte, non è necessario creare anche variabili extra, "questa" parola chiave, ovunque usata, ci dà la certezza a cui si fa riferimento all'istanza corrente.

Importanza di questa parola chiave

Gli esempi seguenti mostrano che è necessario creare variabili con nomi diversi per proprietà particolari, che possono essere semplicemente assegnate nel costruttore durante l'inizializzazione dell'oggetto usando questa parola chiave.

  • Previene il conflitto tra le variabili del membro e il nome della variabile locale, si può fare riferimento alla variabile del membro usando questa parola chiave.

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

  • Anche i metodi della classe di oggetti possono essere invocati usando questo.

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

  • Questo può essere usato nei metodi setter e getter, per restituire le istanze correnti.

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

Usi particolari di questa parola chiave

Ecco alcuni usi di questa parola chiave spiegati di seguito con l'implementazione:

1. Usa With-in a 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())
(
)
)

Ma avrebbe potuto essere scritto così:

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

Quindi questo era qualcosa che abbiamo spiegato anche nell'ultima sezione, dove si può vedere che le convenzioni di denominazione per un tipo di campo di dati possono essere mantenute uniformi se stiamo usando la parola chiave 'this'.

Quindi uno sviluppatore non dovrebbe tenere traccia o mappare un grafico di variabili per lo stesso tipo di campo di dati logici.

2. Invocazione del costruttore che utilizza questa parola chiave

Possiamo usare questa parola chiave all'interno di un costruttore e chiamare un altro costruttore da lì, nella stessa classe. Questo è anche chiamato invocazione esplicita del costruttore.

Consideriamo un esempio mostrato sotto per lo stesso -

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

Ci sono tre costruttori qui nella figura, si noti che il costruttore predefinito dovrebbe essere posizionato esplicitamente quando stiamo facendo un sovraccarico di costruttori.

Questi costruttori stanno inizializzando alcune variabili membro, il compilatore sta ottenendo un'indicazione sull'invocazione del costruttore tramite il numero di parametri utilizzati all'interno dei metodi.

3. Restituzione dell'istanza di classe corrente utilizzando questa parola chiave

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

Quindi, nell'esempio mostrato sopra, si può vedere che l'oggetto corrente viene restituito da un metodo getter e su quell'istanza è stato invocato il particolare metodo "print".

4. Utilizzare come parametro del metodo

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

L'esempio ha citato come l'oggetto corrente viene passato a un metodo che può usare questo oggetto per il suo uso personalizzato.

Conclusione

Abbiamo visto vari casi d'uso qui, citando le varianti contro l'uso di questa parola chiave in Java e dove usare e dove non usare, quelle condizioni sono state presentate in modo esplicito.
'questa' parola chiave è comune tra tutti i linguaggi di programmazione, anche nei framework basati su JavaScript, 'questo' trova un ruolo chiave.
'questa' parola chiave può diventare sovraccarica se non capita bene ed è di grande aiuto per gli sviluppatori se capita correttamente.

Articoli consigliati

Questa è una guida a questa parola chiave in Java. Qui discutiamo di importanza, usi particolari ed esempi di questa parola chiave in Java insieme alla sua implementazione del codice. Puoi anche consultare i seguenti articoli per saperne di più-

  1. Oggetto in Java
  2. Incapsulamento in JavaScript
  3. Parola chiave statica in Java
  4. Sovraccarico e override in Java
  5. Funzione e regole di override in Python

Categoria: