Java >> Java tutorial >  >> Tag >> static

Hvad er et statisk søgeord i Java?

I Java er nøgleord de reserverede ord, der ikke kan bruges som identifikatorer. I alt er der 57 nøgleord i Java. En af dem er "Statisk “. I denne artikel vil jeg give dig et kort indblik i, hvordan statiske søgeord i Java er anvendelige til forskellige aspekter af programmering.

Nedenstående emner er dækket i denne artikel:

  • Introduktion til statiske søgeord i Java
  • Anvendelser af statisk søgeord
    • Statisk blok
    • Statisk variabel
    • Statisk metode
    • Statiske klasser

Introduktion til statisk søgeord i Java

I Java, statisk søgeord bruges hovedsageligt til hukommelsesstyring. Det kan bruges med variabler, metoder, blokke og indlejrede klasser. Det er et nøgleord, der bruges til at dele den samme variabel eller metode i en given klasse. Grundlæggende bruges statisk til en konstant variabel eller en metode, der er den samme for hver forekomst af en klasse. Hovedmetoden for en klasse er generelt mærket statisk.

For at oprette et statisk medlem (blok, variabel, metode, indlejret klasse), skal du foran dets erklæring med nøgleordet statisk . Når et medlem af klassen er erklæret som statisk, kan den tilgås, før objekterne i dens klasse er oprettet, og uden nogen objektreference.

I Java-programmeringssproget er statisk nøgleord en ikke-adgangsmodifikator og kan bruges til følgende:

  • Statisk blok
  • Statisk variabel
  • Statisk metode
  • Statiske klasser

Lad os komme ind på detaljerne i hver af disse metoder ved hjælp af et eksempel.

Anvendelser af statisk søgeord

Lad os først forstå, hvordan statisk blok bruges i programmeringssproget Java.

Statisk blok

Hvis du skal udføre beregningen for at initialisere dine statiske variable , kan du erklære en statisk blok, der udføres nøjagtigt én gang, når klassen først indlæses. Tag et kig på nedenstående Java-program for at forstå brugen af ​​Static Block.

// Java program to demonstrate the use of static blocks
import java.util.*;
public class BlockExample{
// static variable
static int j = 10;
static int n;

// static block
static {
System.out.println("Static block initialized.");
n = j * 8;
}

public static void main(String[] args)
{
System.out.println("Inside main method");
System.out.println("Value of j : "+j);
System.out.println("Value of n : "+n);
}
}

Når du udfører ovenstående program, initialiseres statisk blok og viser værdierne af de initialiserede variabler.

Output :

Static block initialized
Inside main method
Value of j:10
Value of n : 80

Nu hvor du ved, hvordan statisk blok fungerer, lad os gå videre og se, hvad der er statiske variabler, og hvordan det er nyttigt.

Statisk variabel

Når du erklærer en variabel som statisk, oprettes en enkelt kopi af variablen og opdeles mellem alle objekter på klasseniveau. Statiske variable er i det væsentlige globale variable. Grundlæggende deler alle forekomster af klassen den samme statiske variabel. Statiske variabler kan kun oprettes på klasseniveau.

Lad os nu forstå dette ved hjælp af et eksempel.

// Java program demonstrate execution of static blocks and variables

import java.util.*;

public class VariableExample
{
// static variable
static int j = n();

// static block
static {
System.out.println("Inside the static block");
}

// static method
static int n() {
System.out.println("from n ");
return 20;
}

// static method(main !!)
public static void main(String[] args)
{
System.out.println("Value of j : "+j);
System.out.println("Inside main method");
}
}

Når du udfører ovenstående program, vil det udføre statisk blok og variablen i rækkefølge som defineret i ovenstående program.

Output:

from n
Inside the static block
Value of j: 20
Inside main method

Når vi har forstået dette, så lad os dykke dybere ned i denne artikel om statiske søgeord i Java og vide, hvad statiske metoder og indlejrede klasser er.

Statiske metoder

Når en metode er erklæret med statisk søgeord, er det kendt som en statisk metode. Det mest almindelige eksempel på en statisk metode er main( ) metode. Metoder, der er erklæret som statiske, kan have følgende begrænsninger:

  • De kan kun kalde andre statiske metoder direkte.

  • De kan få direkte adgang til statiske data.

Lad os nu forstå statiske metoder ved hjælp af et eksempel

// java program to demonstrate restriction on static methods
public class StaticMethodExample
{
// static variable
static int j = 100;

// instance variable
int n = 200;

// static method
static void a()
{
a = 200;
System.out.println("Print from a");

// Cannot make a static reference to the non-static field b
n = 100; // compilation error

// Cannot make a static reference to the
// non-static method a2() from the type Test
a2(); // compilation error

// Cannot use super in a static context
System.out.println(super.j); // compiler error
}

// instance method
void a2()
{
System.out.println("Inside a2");
}

public static void main(String[] args)
{
// main method
}
}

I ovenstående eksempler kan du se, hvordan begrænsningerne er pålagt de statiske metoder, og også hvordan du må bruge super søgeord i den statiske kontekst. Det handlede om statiske metoder. Lad os nu se, hvad der er indlejrede klasser.

Statisk klasse

En klasse kan gøres statisk kun hvis det er en indlejret klasse. Indlejret statisk klasse behøver ikke en reference til Ydre klasse. I dette tilfælde kan en statisk klasse ikke få adgang til ikke-statiske medlemmer af den ydre klasse. Lad os tage et eksempel for at forstå, hvordan det virker

public class NestedExample{
private static String str= "Edureka"
//Static class
static class MyNestedClass{
//non-static method
public void disp(){
System.out.println(str);
}
}
public static void main(String args[]){
NestedExample.MyNestedClass obj = new NestedExample.MyNestedClass();
obj.disp();

}

Når du udfører ovenstående kode, ser dit output ud som:

Edureka

Det handlede om forskellige anvendelser af statisk nøgleord i Java. Med dette kommer vi til slutningen af ​​denne artikel. Jeg håber du fandt det informativt. Hvis du ønsker at lære mere, kan du tjekke vores andre Java-blogs også.

Tjek Java-certificeringsuddannelsen af Edureka, en betroet online læringsvirksomhed med et netværk af mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et udover dette java-interviewspørgsmål, kommer vi med et pensum, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne artikel "Statisk søgeord i Java", så vender vi tilbage til dig så hurtigt som muligt, eller du kan også deltage i Java Training i Makassar.


Java tag