Sunday, October 2, 2016

ජීවිතය යනු ගමනකි.ගමනාන්තය කෙසේ  වේදැයි අනුමාන කිරීම පමණක් එහි ගමන් ගන්නා අප හට කල හැකිය.

විවිධ දුෂ්කර අවධි මෙන්ම විවිධ වූ පුද්ගල චරිත සමුහයක් ජීවන ගමන් මගෙහිදී මුණගැසෙනු ඇත.සමහරෙක් මට කිසි දිනෙකදී මුණ නොගසුනානම් යැයි කියා විteකදී ඔබට සිතී ඇතිවාට සැක නැත.නමුදු එලෙස අදුර කරා ඇදී ගිය ඔබේ ජීවිතය යළි පණ පෙවූ ජීවකයකු ඔබ සතු නම් ඔබ සැබවින්ම වාසනාවන්තය.

කොන්දේසි විරහිතව යමෙකුට ආලය කල හැකි පුද්ගලයින් ලොව දුර්ලභය.ආලය යනු හුදෙක් ආත්ම තණ්හාවක් හෝ මමය මාගේය යන හැගීම පමණකැයි යමෙකුට නිර්වචනය කල හැකිය.එය වැරදි යයි කාට නම් කිව හැකිද? ආලය කිරීමත් පෙරළා ආදරය බලාපොරොත්තු වීමත් සාමාන්‍ය මිනිස් ස්වභාවයයි.ආලය නොලැබුණු කල මිනිසා තිරිසනෙකු වන්නේද , ආලය ලැබුණු කල තිරිසනෙකු වුව මිනිස් ගති ප්‍රකට කරන්නේද එබැවින් යැයි අපට සිතිය හැකිය.

පෙර සදහන් කල පරිදෙන් කොන්දේසි විරහිතව ඔබට ආලය කරන්නෙකු ඔබ සතු වේ නම් , ගමනාන්තය නොදන්නා නමුත් ජීවන මංපෙතේ ඇවිද යාමට ඔහු හෝ ඇය ඔබට මහත් රුකුලක් වනු නොඅනුමානය.ලෝකය හමුවේ ඔවුන් ඔබ වෙනුවෙන් පෙනී සිටිනු ඇත.වැටුණු විට නැගිටීමට අත් වැලක් වනු ඇත.එවන් පුද්ගලයෙකු ඔබ සතු වේ නම් ඔහු හෝ ඇය සුරැකිව ලග තබා ගැනීම ඔබ සතුය.මන්ද හැල්මේ දුවන ලෝකයේ තවත් කෙනෙකුන් කෙරෙහි සැබෑ ඇල්මක් දැක්විය හැකි පුද්ගලයින් ලොව දුලභ හෙයිනි.

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