Skygget Klasser eller variabler i Java

Shadowing refererer til den praksis i Java programmering for at bruge to variabler med samme navn inden for anvendelsesområder, der overlapper. Når du gør det, bliver variabel med den overordnede omfang skjult fordi variablen med lavere niveau omfang tilsidesætter det. Den variable overordnede derefter "skygget".

Du kan få adgang til et skygget klasse eller instans variabel ved fuld adgangsgivende det - det vil sige ved at give navnet på den klasse, der indeholder det.

For eksempel overveje dette program:

public class ShadowApp
{
statisk int x;
public static void vigtigste (String [] args)
{
x = 5;
System.out.println ("x =" + x);
int x;
x = 10;
System.out.println ("x =" + x);
System.out.println ("ShadowApp.x =" +
ShadowApp.x);
}
}

Her er output:

x = 5
x = 10
x = 10
ShadowApp.x = 5

Her første System.out.println erklæring udskriver værdien af ​​variablen x klasse. Derefter variablen x klasse skygget af den lokale variabel X, hvis værdi er udskrevet af den anden System.out.println redegørelse. Endelig er den tredje System.out.println erklæring udskriver skygget klasse variabel ved at give sit fuldstændige navn (ShadowApp.x).

Omfanget af en lokal variabel, der skygger en klasse variabel ikke nødvendigvis begynde på det samme punkt, at den lokale variabel anvendelsesområde begynder. Den skygger begynder, når den lokale variabel er erklæret, men den lokale variabel anvendelsesområde ikke begynde, før variablen initialiseres. Hvis du forsøger at få adgang til variabel mellem erklæringen og initialiseringen, viser en fejlmeddelelse Java-compiler.

Fordi shadowing er en almindelig kilde til fejl, vil du ønsker at undgå at bruge det så meget som muligt.


© 2019 Zajacperrone.com | Contact us: webmaster# zajacperrone.com