Saturday, October 1, 2016

Static Variables in Java

Static Variables , class එකකින් හදන සෑම instance එකකටම පොදුයි.එහෙමත් නැත්නම් එකම class එකකින් හදන objects සියල්ල share කරන්නෙ static variables වල එකම copy එකක්.

උදාහරණයක් විදිහට අපි මේ program එක අරගෙන බලමු.

-----------------------------------------------------------------------------------------------------------------
class MyClass{
            int x;
            static int y;
}
class MyExample{
         public static void main(String args[]){
                    MyClass c1=new MyClass();
                    c1.x=10;
                    c1.y=20;

                    MyClass c2=new MyClass();
                    c2.x=100;
                    c2.y=200;

                    MyClass c3=new MyClass();
                    c3.x=1000;
                    c3.y=2000;

                    System.out.println("c1 : "+c1.x+" "+c1.y);    // Line 1
                    System.out.println("c2 : "+c2.x+" "+c2.y);   //  Line 2
                    System.out.println("c3 : "+c3.x+" "+c3.y);   //  Line 3

         }
}



Figure 1


මෙහි x කියන්නෙ non-static variable එකක්. y කියන්නෙ static variable එකක්. එම නිසා variable y ,
MyClass නම් class සාදන සෑම instance එකකටම common property එකක්.

x object එකක් තුල සෑදෙන අතර y සෑදෙන්නේ template එක තුලය.

උදාහරණයක් ලෙස c1.x ලෙස call කල විට වෙනස් වෙන්නෙ MyClass class එකෙන් හැදුනු  c1 object instance එකෙහි x variable එක. 

ඒ අනුව c1 object එකෙහි x හි default value එක වෙලා තිබුණු 0 ට දැන් 10 assign වෙනවා.
ඒ විදිහටම c2 object එකේ x ට 100 ත් c3 object එකේ x ට 1000 ත් assign වෙනවා.

නමුත් y කියන්නේ ස්තතික් variable එකක් නිසා ,
                             c1.y=20 මගින් y හි අගය 20 ලෙසටත් ,
                             c2.y=200 මගින් ය හි අගය 200 ලෙසටත් 
                             c3.y =2000 මගින් ය හි අගය 2000 ලෙසටත් වෙනස් වෙනවා.

c1 , c2 , c3 instance object තුනෙන්ම access කරන්නේ MyClass template එකෙහි සෑදුනු y variable එකයි. දැන් අවසාන වශයෙන් y හි අගය 2000 යි;

මෙම ක්‍රියාවලිය සිදුවන ආකාරය figure1 මගින් පෙන්නුම් කරලා තියෙනවා.

එතකොට අපි උඩදී උදාහරණයක් විදිහට ගත්තු program එකේ output එක විදිහට අපිට ලැබෙන්නේ,

    Line1 print කරනවා  >>>   c1  :  10        2000
    Line2 print කරනවා  >>>   c2  :  100      2000
    Line3 print කරනවා  >>>   c3  :  1000    2000

No comments:

Post a Comment