I Java, statisk är ett nyckelord som kan användas med variabler, klasser, block och metoder. När vi använder det statiska nyckelordet före något av dem betyder det att den angivna medlemmen tillhör en typ själv. Med andra ord, en instans av en statisk medlem skapas och delas över alla instanser av klassen.
I det här avsnittet kommer vi att använda statisk nyckelord med Java klass och också förstå varför använder vi en statisk klass?
Java statisk klass
Vi kan deklarera en klass statisk genom att använda nyckelordet static. En klass kan endast deklareras statisk om den är en kapslad klass . Det kräver ingen referens till den yttre klassen. Egenskapen för den statiska klassen är att den inte tillåter oss att komma åt de icke-statiska medlemmarna i den yttre klassen.
För att förstå begreppet statisk klass måste vi först förstå begreppet inre yttre, och kapslade klass.
Inre klass
Klasserna som är icke-statiska och kapslade anropas inre klasser . Observera att vi inte kan skapa en instans av den inre klassen utan att skapa en instans av den yttre klassen. Utan att använda referensen till den yttre klassinstansen kan en instans av den inre klassen komma åt medlemmarna i dess yttre klass. Det gör programmet enkelt och koncist.
Ytterklass
Klassen där kapslad klass är definierad anropas yttre klass .
Kapslad klass
Java tillåter oss att definiera en klass inom en klass som är känd som en kapslad klass . Det kan vara statiskt eller icke-statiskt. Den största skillnaden mellan statisk och icke-statisk klass är att:
- En instans av den statiska kapslade klassen kan skapas utan att skapa en instans av dess yttre klass.
- De statiska och icke-statiska medlemmarna i en yttre klass kan nås av en inre klass.
- De statiska medlemmarna i den yttre klassen kan endast nås av den statiska klassen.
Kom ihåg
- Alla statiska klasser är kapslade klasser men vice versa är inte sant.
- Den kan endast komma åt statiska medlemmar av den yttre klassen.
- Icke-statiska variabel- och instansmetoder kan inte nås inom den statiska klassen. Om du försöker komma åt en icke-statisk referens från ett statiskt fält, ger det ett felmeddelande: Det går inte att göra en statisk referens till det icke-statiska fältet.
- Vi kan skapa statiska block, variabler och metoder i en statisk klass.
- En klass kan ha flera statiska klasser.
- Vi kan inte komma åt den statiska klassen om den är inuti det statiska blocket.
- Det kan finnas hur många statiska klasser som helst inom en statisk klass.
Java Static Class Exempel
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
Varför använder vi statisk klass i Java?
I Java används det statiska nyckelordet främst för minneshantering. Vi kan använda det statiska nyckelordet med variabler, metoder, block och klasser. Att använda den statiska klassen är ett sätt att gruppera klasser. Den används också för att komma åt den primitiva medlemmen av den omslutande klassen genom objektreferensen. De statiska klasserna laddas av klassladdaren vid tidpunkten för den första användningen, bara inte när den omslutande klassen laddas.