Pages

7.Java Data Types


කොහමද ඉතින් කට්ටියට.මම හිතනවා ගිය පාඩම කට්ටියට හොඳට තේරුම් යන්නැති කියලා.එහෙනන් අද පාඩම ඩේටා ටයිප්ස් ගැනයි.

මොනවද මේ Data කියන්නේ.

  1. A Place (ස්ථානයක්)
  2. A name (නමක්)
  3. A number (අංකයක්)
මේ වගේ ඕනෑම දෙයක් data එකක් යනුවෙන් ගන්න පුළුවන්.

කොහමද පරිගණකය data හඳුනා ගන්නේ.




පරිගණක දෘඩාංග කියන්නේ මොනවද 



දෘඩාංග සාමාන්‍යයෙන් කොටස් 2කට බෙදෙනවා  
1.Primary storage
                   1. Volatile
                   2. RAM

2.Secondary storage
                   1. Non-volatile
                   2. Hard disks

RAM එක කොහමද වැඩකරන්නේ කියලා දන්නවද 

Binary

මොනවද මේ Binary කියන්නේ. data එකක කුඩාම අවස්ථාව binary යනුවෙන් හඳුන්වන්න පුළුවන්. A කියන  අකුරට අදාළ binary එක මොකක්ද කියලා ඇහුවොත් කොහමද අපි දැනගන්නේ. එකට අපිට දැනගන්න වෙනවා ASCII ගැන. මොනවද මේ ASCII කියන්නේ. American Standard Code for Information Interchange කියන්නේ එකට තමා. ඒ කියන්නේ ඉංග්‍රීසි හෝඩියේ සෑම අකුරකටම ජාත්‍යන්තර වශයෙන් code එකක් දීලා තියෙනවා.එකට තමයි ASCII කියන්නේ. දැන් ඉතින් බය වෙන්න එපා අය්යෝ මේකත් කට පාඩම් කරන්න වෙයිද කියලා.එහෙම වෙන්නේ නැ. මොකද මේක ගැන අපිට වැඩක් නැ.හැබැයි දැනගෙන හිටියම ඇති. අදාළ අකුරු වලට මොනවද ASCII code කියලා දැනගන්න මෙතනට ගිහිල්ල බලලා එන්න.

ඉතින් මම උදාහරණයකට A ගන්නම්. A = 65 (ASCII code)

දැන් අපිට පුළුවන් A වල binary හොයන්න.
මෙන්න මෙහෙමයි හොයන්නේ.පොඩි කාලේ වගේ 2න් බෙදාගෙන බෙදාගෙන යන්නයි තියෙන්නේ.


                                                                   A bit = 1000001  
                                                                              7 bits

අපි මේක 8 bits වලට හැරෙව්වම    A = 01000001    --   >  8 bits

දැන් බලමු කොහමද binary එක A බවට පත් කරගන්නේ කොහමද කියලා.


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

variable = වෙනස් වන දෙයකට තමයි අපි variable කියලා කියන්නේ.
නමුත් පරිගණක භාෂාවේදී 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

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



 click on picture to enlarge 

compatible incompatible මම තව ඉදිරියේදී සාකච්චා කරනවා.දැනට මතක තියාගන්න.

හොඳයි දැන් අපි මේක practical කරලා බලමු.
ගන්න notepad

______________________________________
class Day2ass1  {
public static void main (String args[]) {

            //  variable declaration   allocte 8bits for x
  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 Charachters
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 declration 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);  
}
}

_____________________________________________

හොඳයි මම හිතනවා අද අමාරුවක් වෙන එකක් නැ කියලා.කට්ටියම කරලා බලලා අමාරු තැන් මට කියන්න.
ලබන පාඩමෙන් හමුවෙමු



6.The Basic Rules of java ජාවා වල මුලික නීති


ජාවා වල නීති කිහිපයක් පවතී.ඒවා මෙසේය.  

1.ජාවා වැඩසටහනක public class එකක්ද එය තුල main class එකක්ද තිබිය යුතුය.


2.public class එකේ  නම සෑම විටම File name (save කරන නම) එකට සමාන විය යුතුය.     උදාහරණයක්‌ ලෙස පහුගිය පාඩමේ save කරන ලද නම ගමු.එහිදී FirstLesson යනුවෙන් ලබා දී ඇත. මෙහි මුල් අකුර capital වනවා වගේම මැද අකුරදcapital වේ. එය එලෙසම save කරන විට ලබාදිය යුතුය. 


3.public class එක තුල main class එක පිහිටුවන ප්‍රධාන කේතය 
public static void main (String args [ ] )      JVM එකෙන් කෙලින්ම සොයා ධාවනය කරන්නේ මෙම main class එකයි.ඉදිරි පාඩම් වලදී මෙය ඉතා හොඳින් පැහැදිළි වනු ඇත.


4.class එකක් ආරම්භ කළ යුත්තේ ඉංග්‍රීසි අකුරකින් පමණකි. එය capital වීම අත්‍යවශ්‍ය නොවේ. ඉලක්කම් භාවිතා කළ හැක්කේ පළමු අකුරට පසුව පමණි.


5.class name එකක් සෑම විටම තනි වචනයක් විය යුතුය.වචන අතර හිස්තැන් භාවිතා කළ නොහැක. විශේෂ සලකුණු (@ , + , " " ,...) කිසිවක් භාවිතා කළ නොහැකි අතර _ සලකුණ පමණක් භාවිතා කළ හැක.




පින්තුරය ලොකුවට බලන්න ඒ මත click කරන්න 

ලබන පාඩමෙන් ජාවා වල මුලික දත්ත ආකාර පිළිබඳව ඉගෙන ගමු


5.ජාවා සරළම වැඩසටහනක් ලියමු


                                           ඔන්න ඉතින් අද වැඩ පටන් ගමු.මම අද කියල දෙන්න හදන්නේ සරළම ජාවා වැඩසටහනක් ලියන්නේ කොහමද කියල.හොඳයි පසුගිය පාඩමෙන් මම කිව්වනේ කොහමද ජාවා JDK Install කරගන්නේ සහ java path එක හදාගන්නේ කොහමද කියල.මතක නැත්නම් ආයෙත් මෙතනට ගිහිල්ල බලලා එන්න.මොකද අද ගොඩක් වැදගත් වෙනවා අර පාත් එක හදාගන්න එක.නැත්නම් ලොකු අමාරුවක වැටෙන්නේ. :D
අද පාඩමට වුවමනා වෙනවා අපි හැමෝම හොඳින් දන්න දෙයක්. Notepad. ඔන්න ඕකෙන් තමයි ඉගෙන ගන්නකම් කරන්න හොඳ.වෙන හේතුවක් නිසා නෙමෙයි.අපි Hard code කරන තරමට තමයි අපිට මතක හිටින්නේ.

Notepad එක අරගෙන මේ විදියට type කරන්න.

class FirstLesson  {
         
               public static void main ( String args[] ) {
       
               System.out.println ( " Hallo kohamada" ) ;

                }

    }

දැන් FirstLesson.java යන නමින් ඔයාලට ඕන තැනක save කරගන්න.මතක ඇතිව Encoding එක ANSI දෙන්න අමතක කරන්න එපා.මොකද ජාවා platform එක Unicode කියන දේ දන්නේ නැ. Unicode දාන්න වෙනම ක්‍රම තිබෙනවා ඒවා ඉදිරියට කියලා දෙන්නම්.

දැන් Command Prompt එක open කරගන්න(cmd එක ගන්න හැටි කියල දීලා ඇත්තේ ආයේ නැහැයි කියන්න එපා) .ඔයාල File එක save කරපු තැනට path එක හදාගන්න. මෙන්න මෙහෙමයි කරන්නේ. මම හදල තියෙන විදියට මම කියල දෙන්නම්.




මම මගේ FirstLesson කියන java file එක save කරලා තියෙන්නේ J: partition  -> My Working Folder -> Java Folder -> Java 32 Folder  -> Day 1 කියන folder එක ඇතුලේ.ඉතින් ඔය විදියට type කර කර ඉන්න එක එක පාරයි කරන්න ඕන.ඊට පස්සේ දිගටම ඕක ඇතුලේ වැඩ ටික කරාම හරි.windows 7 වල නම් ඔය දේට ලේසි ක්‍රමයක් තියෙනවා අදාළ folder එක ඇතුලේ Shift එක සමග mouse right click කරාම එන drop down menu එකේ තියෙනවා open command prompt here කියල.එක click කරාම හරි.

ජාවා වල compiler එකට කියන්නේ javac කියලා. ඉතින් අපට compile කරන්න වෙන්නේ javac මගින්.
මෙහෙමයි කරන්නේ.
( මතක ඇති නේද java permanent path set කරනකොට මම කිව්වා ඇයි කියලා කරන්නේ.නැ මම එතැනදී කිව්වේ නැ.දැන් තමයි කියන්නේ. javac, java කියන වචන cmd එක දන්නේ නැ.ඒ නිසා අපි save කරන හැම file එකක්ම save කරන්න වෙන්නේ අර කියපු bin folder එක ඇතුලේ,එහෙම කරන එක කරදර නිසා තමයි අපි permanent path එක set කරගත්තේ.ඒ නිසා අපේ පරිගණකයේ ඕනෑම තැනක file save කරලා අපේ වැඩ කරගන්න පුළුවන්.)

javac  FirstLesson.java කියලා type කරලා enter කරන්න.මම කියපු විදියට කරානම් අයෙත් මම photo එකේ දාලා තියෙන විදියට එන්න ඕන.නැත්නම් මොකක් හරි Error එකක් ඒවි,ඒක කියවල බලලා වැරැද්ද හදා ගන්න.නැත්නම් මට comment එකක් විදියට එවන්න.

ඊට පස්සේ
java  FirstLesson    කියලා type කරලා enter කරන්න.  Hallo kohamada මේක  cmd එකේ ඇවිල්ල තියෙන්න ඕන.වැඩේ හරිද.නැත්නම් අයෙත් කරලා බලන්න.

මෙන්න මෙහෙමයි coding එක විස්තර කරනවනම්.

1.
2.


3.
4.


5.

අපි මේ වැඩ කරන අතරේ බලන්න අපි java file එක save කරපු තැන තව මොනවද හැදිලා තියෙන්නේ කියලා.   FirstLesson.class කියලා file එකක් ඇති. මගේ මුල් පාඩම් මතක නම් මේක දන්නවා ඇති.open කරලා බලන්න තේරුම් ගන්න පුලුවන්ද කියලා.

මං හිතනවා ඔයාලට තේරෙන්න ඇති කියලා මොනවා හරි ගැටළුවක් තියෙනවා නම් comment කරන්න.

අද පාඩම මෙතනින් ඉවරයි.ඉතින් ඔයාලත් මේවා කරලා බලන්න.එක එක විදියට කරලා බලන්න.

ජාවා වල rules ටිකක් තියෙනවා එක මම අනෙත් පාඩමෙන් කියලා දෙන්නම්.අද ගොඩක් type කරානේ.
හොඳයි try කරලා බලන්න.
මම උදාහරණයක්‌ දීලම යන්නම්කො.මෙන්න


public class FirstLesson {
          public static void main (String args[]) {                                                      


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

}
}