6.7.23

Statičke promenljive (varijable) u Javi

Besplatni Java kurs - 59. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Već sam nekoliko puta pominjao Java promenljive i uvek sam podrazumevao da su to obične promenljive koje pripadaju objektu. Npr. u članku o Java objektima postoji jednostavna klasa Knjiga koja izgledala ovako:

class Knjiga {
    public String naslov;
    public String autor;
    public int brStranica;
}

Kasnije sam navedenu klasu malo proširio i napravio objekat te klase sa konkretnim vrednostima za sve tri promenljive (naslov, autor i brStranica):

class Knjiga {
    public String naslov;
    public String autor;
    public int brStranica;

    public Knjiga(String naslov, String autor, int brStranica){
        this.naslov = naslov;
        this.autor = autor;
        this.brStranica = brStranica;
    }
}

class Rad {
    public static void main(String args[]){
        Knjiga Dina = new Knjiga("Dina", "Frenk Herbert", 704);
    }
}

U datom primeru sve tri promenljive (naslov, autor i brStranica) pripadaju objektu Dina. To je slučaj sa svim običnim promenljivim, one uvek pripadaju određenom objektu. Statičke promenljive su drugačije.

Šta su statičke varijable u Javi?

Statičke promenljive u Javi pripadaju klasi, a ne objektu.

Hajde da sada dodamo statičku varijablu brKnjigaUSvetuu Klasu Knjiga:

class Knjiga {
    public static int brKnjigaUSvetu;
    public String naslov;
    public String autor;
    public int brStranica;

    public Knjiga(String naslov, String autor, int brStranica){
        this.naslov = naslov;
        this.autor = autor;
        this.brStranica = brStranica;
    }
}

Možeš da primetiš da se statičke varijable deklarišu isto kao i obične, uz izuzetak da ispred njih mora biti upotrebljena ključna reč static. Upravo na osnovu te ključne reči Java kompajler će moći da razaznaje statičke varijable od običnih.

Hajde sada da odštampamo jednu običnu promenljivu, npr. autor i našu statičku varijablu brKnjigaUSvetu:

class Knjiga {
    public static int brKnjigaUSvetu;
    public String naslov;
    public String autor;
    public int brStranica;

    public Knjiga(String naslov, String autor, int brStranica){
        this.naslov = naslov;
        this.autor = autor;
        this.brStranica = brStranica;
    }
}

class Rad {
    public static void main(String args[]){
        Knjiga Dina = new Knjiga("Dina", "Frenk Herbert", 704);
        System.out.println(Dina.autor);
        System.out.println(Knjiga.brKnjigaUSvetu);
    }
}

U navedenom primeru možeš da primetiš da se običnoj promenljivoj pristupa preko objekta (Dina.autor), a da se statičkoj promenljivoj pristupa preko same klase (Knjiga.brKnjigaUSvetu). Rezultat izvršavanja kôda biće:

Frenk Herbert
0


Pročitaj i nastavak:

Besplatni Java kurs - 60. deo - Šta znači this u programskom jeziku Java?

No comments:

Post a Comment