Java >> Java tutorial >  >> Tag >> class

Java statisk variabel i metode og klasse med eksempel

Hvilken Java-variabel er erklæret med "statisk nøgleord" kaldet en Java statisk variabel. En statisk variabel er en variabel på klasseniveau. Den initialiseres ved klassens indlæsning, og en enkelt kopi er blevet oprettet og delt mellem alle forekomster af klassen.

Statiske variabler er gode til hukommelsesstyring. Det oprettes, når programmet starter, og destrueres, når programmet stopper.

Statisk variabelsyntaks

Navngivningssyntaksen er den samme som forekomst og lokale variabler. Statisk nøgleord efterfulgt af datatype. Derefter Variabelnavn.

static data variable_name;

Eksempel på Java statisk variabel

Du kan bruge statiske variable på klasseniveau. Lad os se det eksempel, vi erklærede "navn ” statisk variabel i Medarbejder klasse.

public class Employee {
    public static String name = "John";
}

Kald nu den statiske variabel "navn" fra en anden klasse "Company" uden at oprette et klasseobjekt.

public class Company {
    
    public static void main(String[] args) {
        System.out.println(Emplyoee.name);
    }

}

Output: John

Et andet eksempel for at se, hvordan statisk variabel virker:-

public class Example {

    public static void main(String args[]) {
        Student s1 = new Student();
        s1.showData();
        Student s2 = new Student();
        s2.showData();
    }
}

class Student {
    int a; //0
    static int b; //0

    Student() {
        //Constructor incrementing static variable b
        b++;
    }

    public void showData() {
        System.out.println("Value of a = " + a);
        System.out.println("Value of static b = " + b);
    }

}

Output: Værdien af ​​a =0
Værdien af ​​statisk b =1
Værdien af ​​a =0
Værdien af ​​statisk b =2

Statisk variabel i metoden

eller

Sådan opretter du konstanter i Java ved hjælp af det statiske søgeord “?

Mange begyndere er ikke i stand til at erklære statiske variabler inde i den statiske metode.

Men hvorfor kan vi ikke erklære en statisk variabel inde i en statisk funktion?

Svar: I Java betyder statisk, at det er en variabel i en klasse, den tilhører hele klassen, men ikke til et af dens bestemte objekter. Det betyder, at statiske søgeord kun kan bruges i et "klasseomfang '.

Lad os prøve det og se, hvad der sker:-

public class Example {
    // Top level class

    public static void main() {
        static int number = 10;

    }
}  

Output: Fejl:(6, 9) java:ulovlig start på udtryk

Hvad er statiske slutvariable ?

Brug af et endeligt nøgleord med et statisk nøgleord gør Java Variables konstant. Vigtigt punkt enhver endelig variabel skal altid initialiseres, ellers vil den give en kompileringsfejl.

Konstante variabler ændrer sig aldrig fra deres begyndelsesværdi.

Eksempel:-

class Test { 
    final static int x = 20; 
    public static void main(String[] args) 
    { 
        System.out.println(x); 
    } 
} 

Output: 20

Sp:Hvad er standardværdien for den statiske variabel i java?

Svar :Standardværdien for statisk er den samme som ikke-statiske variable:

  • long , short osv.:0 (primitive heltal)
  • float , double :0,0 (primitive flydende point)
  • boolesk:falsk
  • objektreferencer:null

Sp:Sådan kalder man statisk variabel ?

Svar: Du kan kalde den statiske variabel efterfulgt af klassenavnet.

Du skal levere  ClassName.staticMemberName  kun når dig refererer til det uden for klassen.

Så din erklæring skal være sådan:-

System.out.println(st.email);

Sp:Hvordan kan vi få adgang til den statiske variabel uden et klassenavn ?

Svar: Statiske variable er altid kvalificeret med klassenavnet.

Først og fremmest er det ikke sandt, at du skal kvalificere dig med et klassenavn, du kan f.eks. bruge en statisk import:

import static java.lang.Math.PI;

Dernæst kan du henvise til Math.PI blot ved at bruge PI . For eksempel:

import static java.lang.Math.PI;

public class Test {

    public static void main (String[] args) {
        System.out.println(PI);
    }

}

For det andet, så længe du er inden for klassen , kan alle statiske medlemmer adresseres direkte uden at skulle kvalificere sig.

public class Test {

    public static int static_member;

    //within this scope you can call static_member without Test.

}

Skriv en kommentar, hvis du er i tvivl og forslag til denne øvelse.

Bemærk: Dette eksempel (Projekt) er udviklet i IntelliJ IDEA 2018.2.6 (Community Edition)
JRE:11.0.1
JVM:OpenJDK 64-Bit Server VM af JetBrains s.r.o
macOS 10.14.1
Java version 11
Alt Java statisk søgeordseksempler er i Java 11, så det kan ændre sig på anderledes end Java 9 eller 10 eller opgraderede versioner.


Java tag