I Java, statisk er et nøgleord, der kan bruges med variabler, klasser, blokke og metoder. Når vi bruger det statiske nøgleord før nogen af dem, betyder det, at det angivne medlem tilhører en type selv. Med andre ord oprettes og deles en forekomst af et statisk medlem på tværs af alle forekomster af klassen.
I dette afsnit vil vi bruge statisk søgeord med Java klasse og også forstå hvorfor bruger vi en statisk klasse?
fjederværktøjspakke
Java statisk klasse
Vi kan erklære en klasse statisk ved at bruge det statiske nøgleord. En klasse kan kun erklæres statisk, hvis den er en indlejret klasse . Det kræver ingen reference til den ydre klasse. Egenskaben ved den statiske klasse er, at den ikke giver os adgang til de ikke-statiske medlemmer af den ydre klasse.
For at forstå begrebet statisk klasse skal vi først forstå begrebet indre, ydre, og indlejret klasse.
Indre klasse
De klasser, der er ikke-statiske og indlejrede, kaldes indre klasser . Bemærk, at vi ikke kan oprette en forekomst af den indre klasse uden at oprette en forekomst af den ydre klasse. Uden at bruge referencen til den ydre klasseforekomst kan en forekomst af den indre klasse få adgang til medlemmerne af dens ydre klasse. Det gør programmet enkelt og kortfattet.
Ydre Klasse
Klassen, hvori indlejret klasse er defineret, kaldes ydre klasse .
forskel mellem firma og virksomhed
Indlejret klasse
Java giver os mulighed for at definere en klasse inden for en klasse, der er kendt som en indlejret klasse . Det kan være statisk eller ikke-statisk. Den største forskel mellem statisk og ikke-statisk klasse er, at:
- En forekomst af den statiske indlejrede klasse kan oprettes uden at oprette en forekomst af dens ydre klasse.
- De statiske og ikke-statiske medlemmer af en ydre klasse kan tilgås af en indre klasse.
- De statiske medlemmer af den ydre klasse kan kun tilgås af den statiske klasse.
Husk
- Alle statiske klasser er indlejrede klasser, men omvendt er det ikke sandt.
- Den kan kun få adgang til statiske medlemmer af den ydre klasse.
- Ikke-statiske variable og instansmetoder kan ikke tilgås inden for den statiske klasse. Hvis du forsøger at få adgang til en ikke-statisk reference fra et statisk felt, giver det en fejl: Kan ikke lave en statisk reference til det ikke-statiske felt.
- Vi kan skabe statiske blokke, variabler og metoder inde i en statisk klasse.
- En klasse kan have flere statiske klasser.
- Vi kan ikke få adgang til den statiske klasse, hvis den er inde i den statiske blok.
- Der kan være et hvilket som helst antal statiske klasser inden for en statisk klasse.
Java Static Class Eksempel
JavaStaticClassExample.java
public class JavaStaticClassExample { private static String s= 'Javatpoint'; //Static and nested class static class StaticNestedClass { //non-static method of the nested class public void show() { //prints the string defined in base class System.out.println(s); } } public static void main(String args[]) { JavaStaticClassExample.StaticNestedClass obj = new JavaStaticClassExample.StaticNestedClass(); //invoking the method of the nested class obj.show(); } }
Produktion:
Javatpoint
Hvorfor bruger vi statisk klasse i Java?
I Java bruges det statiske nøgleord primært til hukommelsesstyring. Vi kan bruge det statiske nøgleord med variabler, metoder, blokke og klasser. Brug af den statiske klasse er en måde at gruppere klasser på. Det bruges også til at få adgang til det primitive medlem af den omsluttende klasse gennem objektreferencen. De statiske klasser indlæses af klasseindlæseren på tidspunktet for den første brug, men ikke når den omsluttende klasse indlæses.