Luokkamuuttuja on olio-ohjelmoinnissa käytetty termi, jolla tarkoitetaan luokan sisästä muuttujaa. Tämä muuttuja on olemassa, vaikka luokasta ei olisi luotu yhtään olioita ja tämä muuttuja on saavutettavissa kaikkien luokan olioiden, sekä pelkän luokan toimesta. Tämä tarkoittaa siis, että luokkamuuttujat ovat luokan ominaisuuksia, eikä riipu yksittäisistä olioista. Luokkamuuttujien syntaksi ja käyttö vaihtelevat koodikielien välillä, mutta kuitenkin usein ne määritellään staattisella avainsanalla ja niihin viittaaminen hoidetaan luokan kautta. Näihin muuttujiin voidaan kuitenkin myös monesti viitata muilla tavoilla. Niitä voidaan usein esimerkiksi käyttää suoraan luokasta, olion välityksellä, luokkafunktiosta, olion funktiosta tai periytetystä luokasta riippuen luokkamuuttujan määritelmästä. Nämä tekevät niistä monipuolisia ja hyvin käytännöllisiä monien ongelmien ratkaisemiseen.

Luokkamuuttujien etuna on että niiden avulla voidaan usein yksinkertaistaa koodia, sekä niiden avulla voidaan yhdessä luokkafunktioiden kanssa hyödyntää singleton tyyppisiä instansseja. Luokkamuuttujia käytetään tämän lisäksi usein olioiden instanssien laskemiseen, muihin luokan vakioiden tallentamiseen, sekä luokan sisäisten asetusten tai tilojen tallentamiseen.

Java ohelmointi esimerkki muokkaa

Esimerkki Javalla kirjoitettuna luokkamuuttujasta. Javassa luokkamuuttuja (ja luokkafunktio) määritellään "static" sanan avulla. Esimerkissä luokkamuuttujaa käytetään laskemaan, kuinka monta auto-olioita on tehty. Tämä toteutetaan kasvattamalla luokkamuuttujaa aina yhden kerran konstruktorissa, ja siten luokkamuuttujasta voidaan nähdä, kuinka monta kertaa konstruktoria on käytetty. Tämä siis toisin sanoen ilmaisee, kuinka monta olioita on luotu.

public class Auto {
    // Luokkamuuttuja, joka laskee autojen lukumäärän
    public static int autoja = 0;

    // Konstruktori, joka luo uuden auton ja kasvattaa autojen lukumäärää
    public Auto() {
        autoja++;
    }

    // Metodi, joka palauttaa autojen lukumäärän
    public static int getAutoja() {
        return autoja;
    }
}

Koska edellisessä esimerkissä sekä luokkamuuttuja autoja, että luokkafunktio getAutoja() ovat julkisia, voidaan autojen määrään päästä käsiksi esimerkiksi seuraavasti:

Auto henkilöauto = new Auto();

//voidaan käyttää muokkaamiseen tai lukemiseen
Auto.autoja;
henkilöauto.autoja:

tai 

//voidaan käyttää arvon hakemiseen.
Auto.getAutoja();
henkilöauto.getAutoja();

https://fi.wiktionary.org/wiki/luokkamuuttuja

https://en.wiktionary.org/wiki/class_variable

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html