Javalla, staattinen on avainsana, jota voidaan käyttää muuttujien, luokkien, lohkojen ja menetelmien kanssa. Kun käytämme staattista avainsanaa ennen jotakin niistä, se tarkoittaa, että määritetty jäsen kuuluu itse tyyppiin. Toisin sanoen staattisen jäsenen ilmentymä luodaan ja jaetaan kaikkien luokan esiintymien kesken.
Tässä osiossa käytämme staattinen avainsanan kanssa Java luokka ja myös ymmärtää miksi käytämme staattista luokkaa?
Java staattinen luokka
Voimme julistaa luokan staattisiksi käyttämällä staattista avainsanaa. Luokka voidaan julistaa staattiseksi vain, jos se on a sisäkkäinen luokka . Se ei vaadi ulkoisen luokan viittausta. Staattisen luokan ominaisuus on, että se ei salli meidän päästä käsiksi ulomman luokan ei-staattisiin jäseniin.
Ymmärtääksemme staattisen luokan käsitteen meidän on ensin ymmärrettävä käsite sisäinen ulkoinen, ja sisäkkäisiä luokkaa.
Sisäinen luokka
Luokat, jotka ovat ei-staattisia ja sisäkkäisiä, kutsutaan sisäluokat . Huomaa, että emme voi luoda sisemmän luokan ilmentymää luomatta ilmentymää ulkoisesta luokasta. Käyttämättä viittausta ulomman luokan ilmentymään, sisäisen luokan ilmentymä voi käyttää ulomman luokkansa jäseniä. Se tekee ohjelmasta yksinkertaisen ja tiiviin.
Ulompi luokka
Luokka, jossa sisäkkäinen luokka on määritetty, kutsutaan ulkoluokka .
Sisäkkäinen luokka
Java antaa meille mahdollisuuden määrittää luokan luokassa, joka tunnetaan nimellä a sisäkkäinen luokka . Se voi olla staattinen tai ei-staattinen. Suurin ero staattisen ja ei-staattisen luokan välillä on, että:
- Staattisen sisäkkäisen luokan ilmentymä voidaan luoda luomatta ilmentymää sen ulkoisesta luokasta.
- Ulkoisen luokan staattiset ja ei-staattiset jäsenet pääsevät sisälle.
- Ulkoisen luokan staattisiin jäseniin pääsee käsiksi vain staattinen luokka.
Muistaa
- Kaikki staattiset luokat ovat sisäkkäisiä luokkia, mutta päinvastoin ei pidä paikkaansa.
- Se voi käyttää vain ulkoluokan staattisia jäseniä.
- Ei-staattisia muuttujia ja ilmentymiä ei voi käyttää staattisen luokan sisällä. Jos yrität käyttää ei-staattista viittausta staattisesta kentästä, se antaa virheilmoituksen: Ei voi tehdä staattista viittausta ei-staattiseen kenttään.
- Voimme luoda staattisia lohkoja, muuttujia ja menetelmiä staattisen luokan sisällä.
- Luokassa voi olla useita staattisia luokkia.
- Emme voi käyttää staattista luokkaa, jos se on staattisen lohkon sisällä.
- Staattisessa luokassa voi olla mikä tahansa määrä staattisia luokkia.
Java Static Class esimerkki
JavaStaticClassExample.java
public class JavaStaticClassExample { private static String s= 'Javatpoint'; //Static and nested class static class StaticNestedClass { //non-static method of the nested class public void show() { //prints the string defined in base class System.out.println(s); } } public static void main(String args[]) { JavaStaticClassExample.StaticNestedClass obj = new JavaStaticClassExample.StaticNestedClass(); //invoking the method of the nested class obj.show(); } }
Lähtö:
Javatpoint
Miksi käytämme staattista luokkaa Javassa?
Javassa staattista avainsanaa käytetään ensisijaisesti muistin hallintaan. Voimme käyttää staattista avainsanaa muuttujien, menetelmien, lohkojen ja luokkien kanssa. Staattisen luokan käyttö on tapa ryhmitellä luokat yhteen. Sitä käytetään myös pääsyyn sulkevan luokan primitiiviseen jäseneen objektiviittauksen kautta. Classloader lataa staattiset luokat vain ensimmäisen käyttökerran yhteydessä, ei silloin, kun sulkeva luokka latautuu.