What is a Variable (Variable කියන්නේ මොනවද )
වෙනස් වන දෙයකට තමයි අපි variable කියලා කියන්නේ.
සරළව කියනවනම් ඉතින් කාන්තාවනේ (No Offense)
උදාහරණයක් විදිහට E = mc2
මෙතන තියෙන ඔක්කොම Variables. ඇයි මේ ඉංග්රීසි අකුරු වලට ඕනෑම අගයක් දාන්න පුළුවන්නේ.
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);
}
}
එළ සර් නොදන්නා ගොඩක් දේවල් දෙනගන්න පුළුවන් වුනා
ReplyDelete