• Java Data Types 2

    Java Data Types - Part 2

    What is a Variable  (Variable කියන්නේ මොනවද )

    වෙනස් වන දෙයකට තමයි අපි variable කියලා කියන්නේ.
    සරළව කියනවනම් ඉතින් කාන්තාවනේ (No Offense)


    උදාහරණයක් විදිහට E = mc2
    මෙතන තියෙන ඔක්කොම Variables. ඇයි මේ ඉංග්‍රීසි අකුරු වලට ඕනෑම අගයක් දාන්න පුළුවන්නේ.
    නමුත් පරිගණක භාෂාවේදී variable යනු RAM එක මත රඳවා ගන්නා temporary memory allocation එකකටයි.

    x = 100 
    y = 50 
    I = 25
    x = 10
    x = 0 
    y = 25.9


    මේවට තමයි variable කියලා කියන්නේ. මෙහි x , y , I කියන්නේ variable වේ. මේවයේ අගයන් 0 සිට අනන්තය දක්වා ලිවිය හැක.

    Variable වර්ග 

    Variable වර්ග ප්‍රධාන වශයෙන් කොටස් 2 ක් පවතී.මේවා ඒවාට අදාළ bites අනුව වර්ග කර ඇත.
    1.Variable with Decimal points
    2.Variable without Decimal points




    තවත් variable 2 ක් තිබෙනවා



    Data Type Order

    අපට මතක තියාගන්න වෙන්නේ මේවයේ අනුපිලිවෙලට මම එය පහලින් දාන්නම්.එයනම් කටපාඩමේ තියාගන්න වෙනවමයි. 


    compatible incompatible මම තව ඉදිරියේදී සාකච්චා කරනවා.දැනට මතක තියාගන්න.
    හොඳයි දැන් අපි මේක practical කරලා බලමු.
    ගන්න notepad
    දැන් ඉතින් කොටන්න 


    class Day2ass1  {

     public static void main (String args[]) {


                //  variable declaration   allocate 8bits for x - මෙතන දක්වලා තියෙන්නේ Comment එකක්

       byte x ; 

              

               //  variable initialization

       x = 10 ;         


         System.out.println ( x )  ;


                }

        }

    බලමු මෙතන මොකද වෙන්නේ කියලා.
    x කියන variable එක byte data type එකක් විදියට මම මෙතන declare කරලා තියෙනවා.
    (x byte ආකාරයේ data type එකක් නිසා x සඳහා ram එක මගින් ලබාගන්නා ඉඩ 8bite තරම් කුඩා වේ.)
    ඊට පසුව x අදාලව 10 ක් initialization කරලා තියෙනවා.
    දැන් x ව මම print කරනවා.


    ඉහත declaration එක සහ initialization කිරීම කර ඇත්තේ පේලි 2 කට වන සේ නේද. නමුත් මට එය මෙලෙසද ප්‍රකාශ කළ හැක.

    class Day2ass2 {

     public static void main (String args [ ] ) {


      byte x=10 ;

      

     System.out.println(x) ;

            }

    }

    දැන් මේ වගුව අධ්‍යනය කරන්න.



    මේ අභ්‍යාස අධ්‍යනය කරන්න.
    _____________________________________________
    class Day2ass3{

     public static void main (String args[]) {


     boolean b = true;   //   Boolean යනු true හෝ false value ලබාදේ.

     byte x=20;

     short s= 56;

     char c= 'A'  ;         //   single quote use only Characters

     int i=256 ;

     long l=1611 ;

     float f=25.5f ;

     double d=56.32 ;


     System.out.println(b);

     System.out.println("........................");

     System.out.println(x);

     System.out.println("........................");

     System.out.println(s);

     System.out.println("........................");

     System.out.println(c);

     System.out.println("........................");

     System.out.println(i);

     System.out.println("........................");

           }

      }

    __________________________________________
    output



    public class Day2ass4{

     public static void main (String args[]) {


      byte x=128 ;         //this type cannot be done. error= "possible loss of precision"


     System.out.println(x);


     byte x=10 ;           // this type cannot be done. 'cause data declaration doing up to down

            }

    }
    _____________________________________________
    ප්‍රෝග්‍රෑම් එක රන් වෙන්නේ නිතරම උඩ සිට පහලට. up to bottom 
    මේ රන් කරන කෙනාට කියන්නේ ප්‍රෝග්‍රෑම් කොන්ට්‍රොලර් කියලා. ( program controller )
    මතක ඇති නේද data type order එක. බලන්න byte ට පුළුවන් උපරිම තියාගන්න 8bits ක් පමණි.මෙතන byte 128 bits තියාගෙන ඉන්නවා. ඒ කියන්නේ 128 අපට initialize කරන්න byte යොදා ගන්න බැහැ කියන එක.එහෙනන් byte ට වඩා වැඩි එත් එච්චරම වැඩි නොවන data type එකක් තෝරා ගත යුතුය.
    බලන්න එන error එක මොකක්ද කියලා



    required : byte
    found : int
    ඒ කියන්නේ අපි initialize කරපු value එක int value එකක්. නමුත් program controller ඉල්ලන්නේ byte value එකක්. එනිසා මෙතැනදී අපිට යොදාගත හැකි හොඳම data type එක int වේ.
    public class Day2ass4{

     public static void main (String args[]) {


      int x=128 ;         


     System.out.println(x);


     int x=10 ;           

            }

    }
    දැන් රන් කර බලන්න.
    _____________________________________________
    class Day2ass6{

     public static void main (String args[]) {


     // automatic type conversion


     byte b=10; 

     int i=b; 


     System.out.println(i); 


     }

      }
    _____________________________________________
    මේ වගේ program වලට කියන්නේ automatic type conversion කියලා.
    _____________________________________________
    public class Day2ass7{

     public static void main (String args[]) {



     int i=10 ; 

     byte b=i ;      // error= possible loss of precision

     System.out.println(b); 

     }

    }
    _____________________________________________
    ඔන්න මෙතැනදී තමයි අපි පරිස්සම් වෙන්න ඕන.
    මම කිව්වනේ ප්‍රෝග්‍රෑම් එක රන් වෙන්නේ නිතරම උඩ සිට පහලට. up to bottom 
    ඉතින් ඇයි මෙතන වරද. 
    program controller මුලින් read කරන්නේ int data type එක පසුව byte Type එකක් read කරනවා.
    මම ඉස්සෙල්ල කිව්වා නේද data type order එක ගැන. එහි අනුපිලිවෙලට program එකෙත් up to bottom තියෙනවනම් ඒ program එක compatible කියලා කියනවා. 
    එත් කරුමෙට හරි අනුපිලිවෙල වෙනස් වෙන විදියට Program එකේ තිබුනොත් ප්‍රෝග්‍රෑම් කොන්ට්‍රොලර් ට මේ program එක incompatible වෙනවා.
    ඒ නිසා මෙය error එකක් විදියට p c අපට කියනවා. 
    මෙය මේ විදියටම තියාගෙන අපට නිවැරදි කරගැනීමේ ක්‍රමයක් තියෙනවා. 
    එයට කියන්නේ casting කරනවා යනුයි.
    එය මේ ආකාරයෙනුයි කරන්නේ.
    _____________________________________________
    public class Day2ass8{ 

     public static void main (String args[]) {


     int i=10; 

     byte b=(byte) i ;     //casting  (byte size < int size)

     System.out.println(b);  

     

     }

    }
  • 1 comment:

    1. එළ සර් නොදන්නා ගොඩක් දේවල් දෙනගන්න පුළුවන් වුනා

      ReplyDelete