Java Lesson 5

အရင္တပတ္က Comparison Operatorေတြအေၾကာင္း ေၿပာခဲ့တယ္ေနာ္။ဒီတစ္ေခါက္ေတာ့ က်န္Data Typeေတြ ၿဖစ္တဲ့ Floating point typeေတြ ႏွင့္ Character, String အေႀကာင္း ေဆြးေႏြးရေအာင္။
Floating point type
Floatကေတာ့ ဒသမကိန္းေတြကို သိမ္းဆည္းေပးတဲ့ data typeပါပဲ။ ကၽြန္ေတာ္တို႔က အၿမဲတမ္း integerေတြခ်ည္း သုံးေနတာမွ မဟုတ္တာ။ ဥပမာ- ကၽြန္ေတာ္က စက္ဝိုင္းရဲ႕ ဧရိယာကို တြက္ခ်င္တယ္ဆုိပါဆို႔၊ အဲမွာ ပုံေသနည္းက pi*r2  မို႔လား။ အဲလိုမ်ဴိးကို တြက္ၿပီးရတဲ့ resultကို သိမ္းဖို႔ဆုိ floating-point data typeေတြကို သုံးရမွာေပါ့။ ၿပီးေတာ့ integer data typeမွာလိုပဲ သူ႔မွာ rangeရွိပါတယ္။ rangeကေတာ့ ပုံမွာ ၿပထားတဲ့ အတိုင္းပါပဲ။



အဲေတာ့ ကၽြန္ေတာ္က floating-pointႏွစ္ခုရဲ႕ rangeကို resultထုတ္ၿပတဲ့ programေလးေရးႀကည့္ရေအာင္။

class FloatingPointRange {
public static void main(String[] args) {
                   float fMinValue = Float.MIN_VALUE;
float fMaxValue = Float.MAX_VALUE;
double dMinValue = Double.MIN_VALUE;
double dMaxValue = Double.MAX_VALUE;
// Printing the floating point ranges
System.out.println("Range of float values " + fMinValue + " to " + fMaxValue);
System.out.println("Range of double values " + dMinValue + " to " + dMaxValue);
}
}
အေၿဖမွာပါတဲ့ Eေတြက ဘာကိုဆိုလိုတာလဲလို႔ သိခ်င္ႀကမွာေပါ့ေနာ္။ မသိခ်င္လဲ ေၿပာၿပခ်င္လို႔ပါ။ :P  ဟုတ္ကဲ့ minum rangeၿဖစ္တဲ့ floatတန္ဖိုးက 1.4E-45ၿဖစ္ပါတယ္။ Eေနာက္က တန္ဖိုး 45က 10 to the power 45 ကို ဆိုလိုတာပါ။ ဒီေတာ့ အနည္းဆုံးတန္ဖိုးက  ၿဖစ္ပါတယ္။ အတိအက် တန္ဖိုးကေတာ့
0.0000000000000000000000000000000000000000000014 ၿဖစ္ပါတယ္။ ကဲ သိေလာက္ေရာေပါ့။
နမူနာ စက္ဝုိင္း ဧရိယာ ရွာတာေလး ေရးၾကည့္ရေအာင္။

class Area {
public static void main(String[] args) {
float radius=5;
float result= 1.34*radius;
System.out.println("Area of Circle ="+result);
}
}

ဒီexampleမွာ floatေတြကို IDEက မ်ဥ္းနီတားၿပီး errorလို႔ ၿပလိမ့္မယ္။ error messageက
possible loss of precision
  required: float
  found:    double
လို႔ ၿပလိမ့္မယ္။ rangeထဲမွာ ေရာက္ရဲ႕သားနဲ႔ ဘာလို႔ errorၿပလဲဆိုေတာ့ defaultအားၿဖင့္ သူက doubleလို႔ပဲ သတ္မွတ္ထားလို႔ပဲ။ အဲ့ေတာ့ errorမၿပေအာင္။ ဂဏန္းေတြရဲ႕ေနာက္မွာ fလို႔ ထည့္ေပးပါ။ ဒါဆိုရင္ IDEက floatကို ဆိုလိုမွန္း သိသြားပါၿပီ။
float radius=5f;
float result= 1.34f*radius;
ေနာက္တစ္ခုကေတာ့ ကၽြန္ေတာ္က ဒီprogramမွာ resultကို floatမထားခ်င္ဘူး။ integerထားခ်င္တယ္။ ထားလို႔ မရဘူးလို႔ မဟုတ္ဘူးေနာ္။ ထားလို႔ရတယ္။ ဒါေပမဲ့ ဘယ္မွာ errorတက္လဲဆုိေတာ့ 3.14ကို integerထဲ ထည့္ေတာ့ errorတက္တယ္။ data typeမတူရင္ ထည့္မရဘူး။ အဲ့ေတာ့ data typeတူေအာင္ floatကို integer ေၿပာင္းေပးရမယ္။ အဲလိုမ်ဳိး data typeတစ္ခုကေန တၿခားတစ္ခု ေၿပာင္းတာကို type castလုပ္တယ္လို႔ ေခၚပါတယ္။

Type Casting
Data typeတစ္ခုကေန တၿခားတစ္ခုကို ေၿပာင္းပစ္တာကို type castလုပ္တယ္လုိ႔ ေခၚပါတယ္။ ေရးရမဲ့ ပုံစံကေတာ့ ကိုယ္type castလုပ္ခ်င္တဲ့ variableရဲ႕ ေရွ႕မွာ လက္သည္းကြင္းထဲ ကိုယ္ေၿပာင္းခ်င္တဲ့data typeထည့္ေပးရပါတယ္။
Datatype1 Variable1=(datatype)Variable;
float r=(int)radius;
ကဲ ဥပမာ ၾကည့္ရေအာင္။

class Area {
public static void main(String[] args) {
float radius=5;
float result= 1.34*radius;
int area=(int)result;
System.out.println("Area of Circle before type cast ="+result);
System.out.println("Area of Circle after type cast="+area);
}
}
ကဲ type castမလုပ္ခင္နဲ႔ လုပ္ၿပီးတန္ဖိုးကို ယွဥ္ၿပီး ၾကည့္လိုက္ပါဦး။

Character & String Type
Stringက
-Stringလို႔ Sအႀကီးနဲ႔ ေရးရမယ္။
-စကားစု ဘယ္ေလာက္မ်ားမ်ား သိမ္းဆည္းထားႏုိင္တယ္။
-Stringေၾကညာရင္ double quoteထဲ ထည့္ၿပီး ေၾကညာရမယ္
-ဥပမာ_ String name=”Star Tek”
Characterက
-စကားလုံးတစ္လုံးပဲ သိမ္းလုိ႔ရတယ္။
-single quoteထဲ ထည့္ေႀကညာရမယ္။
-ဥပမာ_ char result=’a’;
Exampleႀကည့္ရေအာင္။

class CharString {
public static void main(String[] args) {
char grade=’A’;
String name=”Star Tek”;
System.out.println("Name: ”+name+”\nGrade: ”+grade);
}
}


ကဲ ဒါဆုိရင္ data typeအားလုံးအေၾကာင္း ေၿပာၿပီးသြားပါၿပီ။ ကၽြန္ေတာ္ ဆက္ေရးဖုိ႔ အားရွိေအာင္ commentေလးေတြ ေပးခဲ့ပါဦး။ နားမလည္တာရွိရင္လည္း ေမးႏိုင္ပါတယ္။


ကၽြန္ေတာ္ေရးတဲ့ postေတြက စာဖတ္သူအတြက္ အက်ဳိ္းရွိတယ္ဆုိရင္ commentေပးခဲ့ပါ။ လိုအပ္ခ်က္ေလးမ်ားရွိရင္လည္း အႀကံေပးခဲ့ပါ။


0 comments:

Post a Comment

 

Myanmar Android Programming Tutorials@ 2013 | designed by Star Tek