logo

Staattinen menetelmä Javassa esimerkein

Staattista avainsanaa käytetään luomaan menetelmiä, jotka ovat olemassa riippumatta siitä, luodaanko luokan esiintymiä vai ei. Kaikki menetelmät, jotka käyttävät staattista avainsanaa, kutsutaan staattisiksi menetelmäksi.

Staattisen menetelmän ominaisuudet:



  • Staattinen menetelmä Javassa on menetelmä, joka on osa luokkaa eikä kyseisen luokan esiintymä.
  • Jokaisella luokan esiintymällä on pääsy menetelmään.
  • Staattisilla menetelmillä on pääsy luokkamuuttujiin (staattisiin muuttujiin) ilman luokan objektia (instanssia).
  • Vain staattisia tietoja voidaan käyttää staattisella menetelmällä. Se ei voi käyttää tietoja, jotka eivät ole staattisia (instanssimuuttujat).
  • Sekä staattisissa että ei-staattisissa menetelmissä staattisia menetelmiä voidaan käyttää suoraan.

Syntaksi staattisen menetelmän ilmoittamiseen:

kuinka muuntaa char merkkijonoksi java
Access_modifier static void methodName() { // Method body. }>

Luokan nimeä voidaan käyttää staattisten menetelmien kutsumiseen tai käyttämiseen.

Syntaksi staattisen menetelmän kutsumiseen:



className.methodName();>

Esimerkki 1: Staattisella menetelmällä ei ole pääsyä ilmentymämuuttujaan

JVM suorittaa ensin staattisen menetelmän, jonka jälkeen luodaan luokkaesiintymiä. Koska staattista menetelmää käytettäessä ei ole käytettävissä objekteja. Staattisella menetelmällä ei ole pääsyä ilmentymän muuttujiin. Tämän seurauksena staattinen menetelmä ei voi käyttää luokan ilmentymämuuttujaa.

Java






java do while esimerkki
// 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();> >}> }>

>

>

lista lajiteltu java
Lähtö

40 50 40>

Esimerkki 2: Sekä staattisissa että ei-staattisissa menetelmissä staattisia menetelmiä käytetään suoraan.

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();> >}> }>

min max
>

kolmiosainen operaattori java

>

Lähtö

static number is 100 static string is GeeksForGeeks static number is 100 static string is GeeksForGeeks>

Miksi käyttää staattisia menetelmiä?

  1. Staattisten muuttujien ja muiden ei-oliopohjaisten staattisten menetelmien käyttäminen ja muuttaminen.
  2. Utility- ja avustajaluokat käyttävät usein staattisia menetelmiä.

Staattisten menetelmien rajoitukset:

  1. Ei-staattisia datajäseniä tai ei-staattisia menetelmiä ei voida käyttää staattisilla menetelmillä, eivätkä staattiset menetelmät voi kutsua ei-staattisia menetelmiä suoraan.
  2. Staattisessa ympäristössä tätä ja superia ei saa käyttää.

Miksi on Java:n päämenetelmä staattinen?

Tämä johtuu siitä, että staattisen menetelmän kutsumista ei tarvita objektilta. Jos se olisi ei-staattinen funktio, JVM rakentaisi ensin objektin ennen main()-menetelmän kutsumista, mikä johtaisi ylimääräisiin muistin varaamisvaikeuksiin.

Ero staattisen menetelmän ja instanssimenetelmän välillä

Instanssimenetelmät

Staattiset menetelmät

Se vaatii luokan objektin. Se ei vaadi luokan objektia.
Se voi käyttää kaikkia luokan määritteitä. Se voi käyttää vain luokan staattista attribuuttia.
Metodeihin pääsee käsiksi vain objektiviittauksen avulla. Metodiin pääsee vain luokan nimellä.
Syntaksi: Objref.methodname() Syntaksi: luokannimi.methodname()
Se on esimerkki ohitusarvoohjelmoinnista. Se on esimerkki ohjelmointiohjelmoinnista.