logo

Statisk metode i Java med eksempler

Det statiske nøgleord bruges til at konstruere metoder, der vil eksistere, uanset om der genereres nogen forekomster af klassen eller ej. Enhver metode, der bruger det statiske nøgleord, omtales som en statisk metode.

Funktioner ved statisk metode:



  • En statisk metode i Java er en metode, der er en del af en klasse snarere end en forekomst af den klasse.
  • Hver forekomst af en klasse har adgang til metoden.
  • Statiske metoder har adgang til klassevariabler (statiske variabler) uden at bruge klassens objekt (instans).
  • Kun statiske data kan tilgås med en statisk metode. Det er ikke i stand til at få adgang til data, der ikke er statiske (instansvariabler).
  • I både statiske og ikke-statiske metoder kan statiske metoder tilgås direkte.

Syntaks til at erklære den statiske metode:

Access_modifier static void methodName() { // Method body. }>

Navnet på klassen kan bruges til at påkalde eller få adgang til statiske metoder.

Syntaks for at kalde en statisk metode:



className.methodName();>

Eksempel 1: Den statiske metode har ikke adgang til instansvariablen

JVM'en kører den statiske metode først, efterfulgt af oprettelsen af ​​klasseforekomster. Fordi ingen objekter er tilgængelige, når den statiske metode bruges. En statisk metode har ikke adgang til instansvariabler. Som et resultat kan en statisk metode ikke få adgang til en klasses instansvariabel.

Java

mysql unikke nøgle






// Java program to demonstrate that> // The static method does not have> // access to the instance variable> > import> java.io.*;> > public> class> GFG {> >// static variable> >static> int> a =>40>;> > >// instance variable> >int> b =>50>;> > >void> simpleDisplay()> >{> >System.out.println(a);> >System.out.println(b);> >}> > >// Declaration of a static method.> >static> void> staticDisplay()> >{> >System.out.println(a);> >}> > >// main method> >public> static> void> main(String[] args)> >{> >GFG obj =>new> GFG();> >obj.simpleDisplay();> > >// Calling static method.> >staticDisplay();> >}> }>

>

>

Produktion

40 50 40>

Eksempel 2: I både statiske og ikke-statiske metoder er der direkte adgang til statiske metoder.

Java




// Java program to demonstrate that> // In both static and non-static methods,> // static methods are directly accessed.> > import> java.io.*;> > public> class> StaticExample {> > >static> int> num =>100>;> >static> String str =>'GeeksForGeeks'>;> > >// This is Static method> >static> void> display()> >{> >System.out.println(>'static number is '> + num);> >System.out.println(>'static string is '> + str);> >}> > >// non-static method> >void> nonstatic()> >{> >// our static method can accessed> >// in non static method> >display();> >}> > >// main method> >public> static> void> main(String args[])> >{> >StaticExample obj =>new> StaticExample();> > >// This is object to call non static function> >obj.nonstatic();> > >// static method can called> >// directly without an object> >display();> >}> }>

>

>

Produktion

8 til 1 multiplekser
static number is 100 static string is GeeksForGeeks static number is 100 static string is GeeksForGeeks>

Hvorfor bruge statiske metoder?

  1. For at få adgang til og ændre statiske variable og andre ikke-objektbaserede statiske metoder.
  2. Utility- og hjælpeklasser anvender ofte statiske metoder.

Begrænsninger i statiske metoder:

  1. Ikke-statiske datamedlemmer eller ikke-statiske metoder kan ikke bruges af statiske metoder, og statiske metoder kan ikke kalde ikke-statiske metoder direkte.
  2. I et statisk miljø er dette og super ikke tilladt at blive brugt.

Hvorfor er den vigtigste metode i Java statisk?

Det er fordi det ikke er nødvendigt at kalde en statisk metode af objektet. Hvis det var en ikke-statisk funktion, ville JVM først bygge et objekt, før den kalder main()-metoden, hvilket resulterer i en ekstra hukommelsesallokeringsvanskelighed.

Forskellen mellem den statiske metode og instansmetoden

Forekomstmetoder

Statiske metoder

Det kræver et objekt af klassen. Det kræver ikke et objekt af klassen.
Den kan få adgang til alle attributter i en klasse. Den kan kun få adgang til en klasses statiske attribut.
Metoderne kan kun tilgås ved hjælp af objektreference. Metoden er kun tilgået af klassenavn.
Syntaks: Objref.methodname() Syntaks: klassenavn.metodenavn()
Det er et eksempel på pass-by-value programmering. Det er et eksempel på pass-by-reference programmering.