logo

Statinis metodas Java su pavyzdžiais

Statinis raktinis žodis naudojamas konstruoti metodus, kurie egzistuos nepriklausomai nuo to, ar yra sugeneruoti kokie nors klasės egzemplioriai, ar ne. Bet koks metodas, kuriame naudojamas statinis raktinis žodis, vadinamas statiniu metodu.

Statinio metodo ypatybės:



  • Statinis metodas Java yra metodas, kuris yra klasės dalis, o ne tos klasės egzempliorius.
  • Kiekvienas klasės egzempliorius turi prieigą prie metodo.
  • Statiniai metodai turi prieigą prie klasės kintamųjų (statinių kintamųjų), nenaudodami klasės objekto (pavyzdžio).
  • Statiniu metodu galima pasiekti tik statinius duomenis. Jis negali pasiekti duomenų, kurie nėra statiški (pavyzdžių kintamieji).
  • Taikant statinius ir nestatinius metodus, statinius metodus galima pasiekti tiesiogiai.

Sintaksė statiniam metodui deklaruoti:

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

Klasės pavadinimas gali būti naudojamas statiniams metodams iškviesti arba pasiekti.

sonu nigam

Sintaksė statiniam metodui iškviesti:



className.methodName();>

1 pavyzdys: statinis metodas neturi prieigos prie egzemplioriaus kintamojo

JVM pirmiausia paleidžia statinį metodą, o po to sukuria klasės egzempliorius. Nes jokie objektai nepasiekiami, kai naudojamas statinis metodas. Statinis metodas neturi prieigos prie egzempliorių kintamųjų. Dėl to statinis metodas negali pasiekti klasės egzemplioriaus kintamojo.

Java




base64 javascript dekodavimas



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

>

santykio kompozicija
>

Išvestis

40 50 40>

2 pavyzdys: naudojant statinius ir nestatinius metodus, statiniai metodai pasiekiami tiesiogiai.

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

>

apvalkalo scenarijaus pavertimas vykdomuoju

>

Išvestis

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

Kodėl naudoti statinius metodus?

  1. Norėdami pasiekti ir keisti statinius kintamuosius ir kitus neobjektinius statinius metodus.
  2. Naudingumo ir pagalbos klasėse dažnai naudojami statiniai metodai.

Statinių metodų apribojimai:

  1. Nestatiniai duomenų elementai arba nestatiniai metodai negali būti naudojami statiniais metodais, o statiniai metodai negali tiesiogiai iškviesti nestatinių metodų.
  2. Statinėje aplinkoje šio ir super neleidžiama naudoti.

Kodėl yra pagrindinis Java metodas statinis?

Taip yra todėl, kad objektui nereikia iškviesti statinio metodo. Jei tai būtų nestatinė funkcija, JVM pirmiausia sukurtų objektą prieš iškviesdamas main() metodą, todėl iškiltų papildomų atminties paskirstymo sunkumų.

Skirtumas tarp statinio metodo ir egzemplioriaus metodo

Egzempliorių metodai

Statiniai metodai

Tam reikalingas klasės objektas. Tam nereikia klasės objekto.
Jis gali pasiekti visus klasės atributus. Jis gali pasiekti tik statinį klasės atributą.
Metodus galima pasiekti tik naudojant objekto nuorodą. Metodas pasiekiamas tik pagal klasės pavadinimą.
Sintaksė: Objref.methodname() Sintaksė: className.methodname()
Tai praeinančios vertės programavimo pavyzdys. Tai praeinančio nuorodos programavimo pavyzdys.