Was ist Variablenverstecken und Variablenschatten in Java?

In der Java-Programmierung sind „Lokal“, „Instanz“ und „Statisch“ drei verschiedene Arten von Variablen. Lokale Variablen werden innerhalb einer Methode/Funktion deklariert und sind nur innerhalb dieses Bereichs sichtbar, während die Instanzvariablen außerhalb von Methoden deklariert werden und für alle Funktionen in der Klasse zugänglich sind. Statische Variablen werden mit dem Schlüsselwort static deklariert/erstellt und sind für alle Objekte der Klasse direkt zugänglich. In diesem Artikel wird ausführlich erläutert, was das Schattieren und Ausblenden von Variablen ist und wie es funktioniert.

Ausblenden und Beschatten von Variablen in Java

Variable Beschattung und variabel verstecken treten auf, wenn zwei Variablen mit demselben/identischen Namen in unterschiedlichen Bereichen erstellt werden. Beschattung tritt auf, wenn eine innere Variable eine äußere Variable verbirgt. Versteckt Tritt auf, wenn eine Instanzvariable eine statische Variable verbirgt.

Lassen Sie uns den Code für ein klares Verständnis besprechen.

Beispiel 1: Ausblenden von Variablen in Java

In diesem Code werden Variablen mit demselben Namen erstellt, um das Konzept des Ausblendens von Variablen im Detail zu erläutern.

class vehicle //parent class
{
    String mystr = "Car";
  }//child class wheels extending parent class vehicle
class wheels extends vehicle
{
    String mystr = "Truck";
}
class variablehiding
{
public static void main(String args[])
{
    wheels objects = new wheels();
    System.out.println("mystr is: "+objects.mystr);
   
}
}

Im obigen Code:

  • Es werden zwei Klassen namens „Räder“ und „Fahrzeuge“ deklariert.
  • Beide Klassen haben die Variable mit demselben Namen deklariert.
  • Die Ausgabe hat den geerbten Wert.

Ausgabe

Die folgende Ausgabe hat die Variable der übergeordneten Klasse geerbt, daher wird „truck“ als Ausgabe ausgegeben:

Beispiel 2: Variablen-Shadowing in Java

Dieser Code veranschaulicht, wie die Schattenbildung auftritt, wenn eine innere Variable eine äußere Variable verbirgt:

class variableshadowing {
int c = 15;
class instance {
int c=10;
public void print()
{
System.out.println(c);
System.out.println(variableshadowing.this.c);
}
}
}
class shadowing {
public static void main(String[] args)
{
variableshadowing object = new variableshadowing();
variableshadowing.instance instanceObject= object.new instance();
instanceObject.print();
}
}

Im obigen Code:

  • Es sind zwei Klassen deklariert.
  • Die Instanzklasse wird innerhalb der Klasse „variableshadowing“ deklariert.
  • Die beiden Klassen enthalten Ganzzahlen, die mit demselben Variablennamen deklariert sind.

Ausgabe

Die folgende Ausgabe zeigt, dass zuerst die Variable gedruckt wird, die innerhalb der Instanzklasse deklariert wurde, und dann die Ausgabe für die Hauptklasse, bei der es sich um Variablenschatten handelt:

Dies fasst die Informationen zum Ausblenden und Schattieren von Variablen zusammen.

Wie verwaltet man das Ausblenden und Shadowing von Variablen in Java?

Um das Ausblenden und Schattieren von Variablen zu verwalten, besteht eine einfache Möglichkeit darin, die Verwendung derselben Variablen für die Deklaration zu vermeiden. Wenn die Variablen gleich sind, ist der Compiler verwirrt, welche Variable aufgerufen wurde. Daher verwendet der Compiler beim Ausblenden von Variablen zuerst den Wert der lokalen Variablen und nicht den globalen. Wenn die Instanzvariable und die globalen Variablen identisch sind, spricht man von Variablenschatten. Um Variablenschatten zu vermeiden, müssen der Einfachheit halber unterschiedliche Variablen verwendet werden.

Abschluss

In Java der Begriff Ausblenden von Variablen bezieht sich auf eine Situation, in der die untergeordnete Klasse und die übergeordnete Klasse dieselbe Variable verwenden, auch wenn die Typen unterschiedlich sind. Variable Beschattung passiert in Java, wenn lokale Variablen und Instanzvariablen identisch sind. In diesem Blogbeitrag wurde gezeigt, was das Verbergen und Schattieren von Variablen ist und wie man sie in Java verwaltet.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen