Inštančné premenné

<< Myšacie udalosti v JPAZe | Obsah | "Inicializačné metódy" (konštruktory) >>

Všetky premenné, s ktorými sme mali doposiaľ možnosť pracovať, boli tzv. lokálne - t.j. "žili" iba počas vykonávania metód. Neraz však potrebujeme, aby si objekt pamätal nejakú informáciu počas celého "svojho života". Na tento účel používame tzv. inštančné (objektové) premenné. Tieto premenné vznikajú spolu s objektom pri jeho vytvorení. Ak chceme definovať inštančnú premennú pre objekty nejakej triedy, stačí deklaráciu premennej napísať mimo tiel metód a pred deklaráciu pridať slovíčko private:

public class MojaPlocha extends WinPane {       
        private int pocetBodiek = 0;   

        // metody triedy ...
}

Hoci inštančnú premennú môžeme definovať na ktoromkoľvek mieste definície triedy, je dobrým zvykom umiestniť definície lokálnych premenných pred definície metód.

K inštančným premenným sa vo vnútri metód pristupuje podobne, ako keď voláme iné nami napísané metódy triedy - pred názov premennej napíšeme this a pridáme bodku:

public class MojaPlocha extends WinPane {       
        private int pocetBodiek = 1;   

        public void zvysPocetBodiek() {
               this.pocetBodiek = this.pocetBodiek + 1;
        }
}

V porovnaní s lokálnymi premennými majú inštančné premenné ešte jednu zvláštnosť. Kým lokálne premenné sú po vytvorení neinicializované a prv než s nimi začneme pracovať ich musíme príkazom priradenia inicializovať, pre inštančné premenné to neplatí. Inštančné premenné sú automaticky inicializované na tzv. "defaultnú" (prednastavenú?) hodnotu. Táto "defaultná" hodnota je prirodzene závislá od typu premennej:

  • pre int, byte, short, long, double a float je to hodnota 0
  • pre boolean je to false
  • pre char je to znak s UNICODE kódom 0 (prvý znak UNICODE tabuľky)
  • pre premenné referenčného typu (referencujúce napr. objekty tried String, Turtle, WinPane, ...) je to null

<< Myšacie udalosti v JPAZe | Obsah | "Inicializačné metódy" (konštruktory) >>