Статички може бити:
- Статичке променљиве
- Статичке методе
- Статични блокови кода.
Погледајмо прво статичке променљиве и статичке методе.
Шта је статичка променљива у Јави?
Статичка променљива у Јави је променљива која припада класи и иницијализује се само једном на почетку извршења. То је променљива која припада класи, а не објекту (инстанци). Статичке променљиве се иницијализују само једном, на почетку извршења. Ове променљиве ће се прво иницијализовати, пре иницијализације било којих променљивих инстанце.
- Једну копију коју ће делити све инстанце класе
- Статичкој променљивој може се директно приступити именом класе и не треба јој објекат
Синтакса:
< class-name>.
Шта је статички метод у Јави?
Статичка метода у Јави је метода која припада класи, а не објекту. Статички метод може приступити само статичким подацима. То је метода која припада класи, а не објекту (инстанци). Статички метод може приступити само статичким подацима. Не може приступити не-статичким подацима (променљиве инстанце).
- Статичка метода може позивати само друге статичке методе и из ње не може позвати не-статичку методу.
- Статичкој методи се може директно приступити именом класе и није јој потребан ниједан објекат
- Статички метод се ионако не може позивати на „ову“ или „супер“ кључну реч
Синтакса:
< class-name>.
Напомена: главни метод је статичан, јер мора бити доступан да би се апликација могла покренути, пре него што се деси инстанцирање.
Научимо нијансе статичних кључних речи радећи неке вежбе!
Пример: Како позвати статичке променљиве и методе
Корак 1) Копирајте следећи код у едитор
публиц цласс Демо {публиц статиц воид маин (Стринг аргс []) {Студент с1 = нови студент ();с1.сховДата ();Студент с2 = нови студент ();с2.сховДата ();//Студент.б++;//с1.сховДата ();}}цласс Студент {инт а; // иницијализовано на нулустатички инт б; // иницијализује се на нулу само када се учита класа не за сваки створени објекат.Ученик(){// Конструктор који увећава статичку променљиву бб ++;}публиц воид сховДата () {Систем.оут.принтлн ("Вредност а =" + а);Систем.оут.принтлн ("Вредност б =" + б);}// јавни статички прираштај празнине () {// а ++;//}}
Корак 2) Сачувајте и компајлирајте код. Покрените код као, јава Демо .
Корак 3) Очекивани излаз приказан је испод
Следећи дијаграм показује како се стварају референтне променљиве и објекти и како статичким променљивим приступају различите инстанце.
Корак 4) Могуће је приступити статичкој променљивој изван класе користећи синтаксу ЦлассНаме.Вариабле_Наме . Унцоммент лине # 7 & 8. Снимите, компајлирајте и покрените. Посматрајте излаз.
Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value of b = 3Корак 5) Унцоммент лине 25,26 & 27. Снимите, компајлирајте и покрените.
error: non-static variable a cannot be referenced from a static context a++;
Корак 6) Грешка =? То је зато што није могуће приступити варијабли инстанце „ а “ из јава статичке методе класе „ инкремент “.
Шта је статички блок у Јави?
Статички блок је блок изјава у Јава класе који ће бити извршен када класа прво учита у ЈВМ. Статички блок помаже да покренете статичке чланове података , као и конструктори помоћ да покрене чланова инстанце.
class Test{static {//Code goes here}}
Следећи програм је пример јава статичког блока.
Пример: Како приступити статичком блоку
публиц цласс Демо {статиц инт а;статички инт б;статиц {а = 10;б = 20;}публиц статиц воид маин (Стринг аргс []) {Систем.оут.принтлн ("Вредност а =" + а);Систем.оут.принтлн ("Вредност б =" + б);}}
добићете следећи излаз програма.
Value of a = 10Value of b = 20