Java statiskais atslēgvārds (ar piemēriem)

Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java statisko atslēgvārdu, kā arī statiskām metodēm, statiskajiem mainīgajiem lielumiem un statiskajiem blokiem.

Kas ir statisks atslēgvārds Java valodā?

Ja mēs vēlamies piekļūt klases biedriem Java, vispirms jāizveido klases eksemplārs. Bet būs situācijas, kad mēs vēlamies piekļūt klases biedriem, neveidojot nekādus mainīgos.

Šādās situācijās mēs varam izmantot staticatslēgvārdu Java. Ja mēs vēlamies piekļūt klases biedriem, neveidojot klases instanci, mums klases biedri jāpasludina par statiskiem.

MathJava klasē ir gandrīz visu tās locekļu statisks. Tātad, mēs varam piekļūt tās dalībniekiem, neveidojot matemātikas klases eksemplārus. Piemēram,

 public class Main ( public static void main( String() args ) ( // accessing the methods of the Math class System.out.println("Absolute value of -12 = " + Math.abs(-12)); System.out.println("Value of PI = " + Math.PI); System.out.println("Value of E = " + Math.E); System.out.println("2^2 = " + Math.pow(2,2)); ) )

Izeja :

 Absolūtā vērtība -12 = 12 PI vērtība = 3,141592653589793 Vērtība E = 2,718281828459045 2 2 = 4,0

Iepriekš minētajā piemērā mēs neesam izveidojuši nevienu Mathklases instanci . Bet mēs varam piekļūt tās metodēm: abs()un pow()un mainīgajiem: PIun E.

Tas ir iespējams, jo Mathklases metodes un mainīgie ir statiski.

Statiskās metodes

Statiskās metodes sauc arī par klases metodēm. Tas ir tāpēc, ka statiskā metode pieder klasei, nevis klases objektam.

Un mēs varam tieši izmantot statiskās metodes, izmantojot klases nosaukumu. Piemēram,

 class Test ( // static method inside the Test class public static void method() (… ) ) class Main ( // invoking the static method Test.method(); )

Šeit mēs varam redzēt, ka statiskajai metodei var piekļūt tieši no citām klasēm, izmantojot klases nosaukumu.

Katrā Java programmā mēs esam deklarējuši mainmetodi static. Tas ir tāpēc, ka, lai palaistu programmu, JVM jāspēj izsaukt galveno metodi sākotnējā posmā, kad atmiņā nav objektu.

1. piemērs: Java statiskās un nestacionārās metodes

 class StaticTest ( // non-static method int multiply(int a, int b)( return a * b; ) // static method static int add(int a, int b)( return a + b; ) ) public class Main ( public static void main( String() args ) ( // create an instance of the StaticTest class StaticTest st = new StaticTest(); // call the nonstatic method System.out.println(" 2 * 2 = " + st.multiply(2,2)); // call the static method System.out.println(" 2 + 3 = " + StaticTest.add(2,3)); ) )

Izeja :

 2 * 2 = 4 2 + 3 = 5

Iepriekš minētajā programmā mēs esam deklarējuši, ka klasē nav statiska metode multiply()un statiskā metode ir nosaukta .add()StaticTest

Galvenās klases iekšpusē mēs varam redzēt, ka mēs saucam par statisko metodi, izmantojot klases objektu ( st.multiply(2, 2)). Tomēr mēs saucam par statisko metodi, izmantojot klases nosaukumu ( StaticTest.add(2, 3)).

Statiskie mainīgie

Ja mēs izveidojam klases objektus Java, katram objektam būs sava visu klases mainīgo kopija. Piemēram,

 class Test ( // regular variable int age; ) class Main ( // create instances of Test Test test1 = new Test(); Test test2 = new Test(); )

Šeit gan objektiem test1, gan test2 būs atsevišķas mainīgā vecuma kopijas. Un tie atšķiras viens no otra.

Tomēr, ja mēs pasludinām mainīgo par statisku, visiem klases objektiem ir viens un tas pats statiskais mainīgais. Tas ir tāpēc, ka tāpat kā statiskās metodes, statiskie mainīgie ir saistīti arī ar klasi. Un, lai piekļūtu statiskajiem mainīgajiem, mums nav jāizveido klases objekti. Piemēram,

 class Test ( // static variable static int age; ) class Main ( // access the static variable Test.age = 20; )

Šeit mēs varam redzēt, ka mēs piekļūstam statiskajam mainīgajam no citas klases, izmantojot klases nosaukumu.

2. piemērs: Java statiskie un nestacionārie mainīgie

 class Test ( // static variable static int max = 10; // non-static variable int min = 5; ) public class Main ( public static void main(String() args) ( Test obj = new Test(); // access the non-static variable System.out.println("min + 1 = " + (obj.min + 1)); // access the static variable System.out.println("max + 1 = " + (Test.max + 1)); ) )

Izeja :

 min + 1 = 6 max + 1 = 11

Iepriekš minētajā programmā mēs testa klasē esam deklarējuši statisko mainīgo ar nosaukumu min un statisko mainīgo ar nosaukumu max.

Galvenās klases iekšpusē mēs varam redzēt, ka mēs saucam nestatisku mainīgo, izmantojot klases objektu ( obj.min + 1). Tomēr mēs saucam statisko mainīgo, izmantojot klases nosaukumu ( Test.max + 1).

Piezīme : Statiskos mainīgos Java lieto reti. Tā vietā tiek izmantotas statiskās konstantes. Šīs statiskās konstantes ir definētas pēc static finalatslēgvārda un attēlotas ar lielajiem burtiem. Tāpēc daži cilvēki dod priekšroku lielajiem burtiem arī statiskajiem mainīgajiem.

Piekļūstiet statiskajiem mainīgajiem un metodēm klasē

Mēs piekļūstam statiskajam mainīgajam no citas klases. Tādējādi mēs esam izmantojuši klases nosaukumu, lai tam piekļūtu. Tomēr, ja mēs vēlamies piekļūt statiskajam dalībniekam no klases iekšpuses, tam var piekļūt tieši. Piemēram,

 public class Main ( // static variable static int age; // static method static void display() ( System.out.println("Static Method"); ) public static void main(String() args) ( // access the static variable age = 30; System.out.println("Age is " + age); // access the static method display(); ) )

Izeja :

 Vecums ir 30 Statiskā metode

Šeit mēs varam tieši piekļūt statiskajam mainīgajam un metodei, neizmantojot klases nosaukumu. Tas ir tāpēc, ka statiskie mainīgie un metodes pēc noklusējuma ir publiski. Tā kā mēs piekļūstam no vienas klases, mums nav jānorāda klases nosaukums.

Statiskie bloki

Java statisko bloku izmanto statisko mainīgo inicializēšanai. Piemēram,

 class Test ( // static variable static int age; // static block static ( age = 23; ) )

Šeit mēs varam redzēt, ka esam izmantojuši statisku bloku ar sintaksi:

 static ( // variable initialization )

Statiskais bloks tiek izpildīts tikai vienu reizi, kad klase tiek ielādēta atmiņā. Klase tiek ielādēta, ja vai nu klases objekts tiek pieprasīts kodā, vai statiskie dalībnieki tiek pieprasīti kodā.

Klasei var būt vairāki statiski bloki, un katrs statiskais bloks tiek izpildīts tādā pašā secībā, kādā tie ir ierakstīti programmā.

3. piemērs: statiskā bloka izmantošana Java

 class Main ( // static variables static int a = 23; static int b; static int max; // static blocks static ( System.out.println("First Static block."); b = a * 4; ) static ( System.out.println("Second Static block."); max = 30; ) // static method static void display() ( System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("max = " + max); ) public static void main(String args()) ( // calling the static method display(); ) )

Izeja :

Pirmais statiskais bloks. Otrais statiskais bloks. a = 23 b = 92 max = 30

Iepriekš minētajā programmā. tiklīdz tiek ielādēta galvenā klase,

  • A vērtība ir iestatīta uz 23.
  • Tiek izpildīts pirmais statiskais bloks. Tādējādi virkne First Static blocktiek izdrukāta, un b vērtība tiek iestatīta uz a * 4.
  • Tiek izpildīts otrais statiskais bloks. Tādējādi virkne Second Static blocktiek izdrukāta, un max vērtība tiek iestatīta uz 30.
  • Un, visbeidzot, display()tiek izpildīti drukātie paziņojumi metodes iekšienē .

Ligzdota statiskā klase

Java valodā mēs varam deklarēt klasi citas klases iekšienē. Šādas klases ir pazīstamas kā ligzdotas klases. Ligzdotās klases ir divu veidu:

  • Statiskās ligzdotās klases
  • Nestatiskas ligzdotas klases

Piemēram,

 class OuterClass ( // static nested class static class NestedClass (… ) // non-static nested class class InnerClass (… ) )

Lai uzzinātu vairāk, apmeklējiet Java Nested klasi.

Interesanti raksti...