Getting Start with Java Part I
Getting start with java မှာ ရေးကြည့်ခဲ့တဲ့ Calculator program ကိုပြန်ဆန်းစစ်ကြည့်မည်ဆိုလျှင် ပထမဆုံး user ကိုတောင်းတဲ့ first number နဲ့ second number ကို ကျွန်တော်တို့ ရိုက်ထည့် တုန်းက number ပဲ ရိုက်ထည့် ပြီးစမ်းခဲ့ ကြတယ်။ အခု ကျွန်တော်တို့ အဲဒီ program ထဲမှာပဲ first number နဲ့ second number နေရာမှာ abc အစရှိတဲ့ အက္ခရာတွေ ထည့်ပြီးစမ်းကြည့်တဲ့အခါ အဲဒီ Calculator Program လေး ဟာ ပုံမှန်အတိုင်း မ run တော့ပါဘူး။
ပုံမှာ ပြထားတဲ့ အတိုင်းပါပဲ Exception (InputMismachException) တက်ပါတယ်။ ဒါဘာကြောင့်ဖြစ်ရလဲ ဆိုတော့ program မှာ ကျွန်တော် လက်ခံခိုင်းထားတဲ့ value ကိုထိန်းသိမ်းထားတဲ့ variable type က int (ဂဏန်း) ကိုပဲလက်ခံနိုင်လို့ပါ။ ခုလို နေရာမျိုးမှာ java program မှာ အသင့် သုံးနိုင်တဲ့ try catch block ဆိုတာရှိပါတယ်။ ကျွန်တော်တို့ ဒီ error ကို ဖြေရှင်းကြည့်ရအောင်။ ဒီလို error မျိုးကို runtime error လို့ခေါ်ပါတယ်။ ခုပုံမှာ ပြထားတဲ့ အတိုင်းပြင်ရေးကြည့်မည်ဆိုပါက
Try catch block မှာ try block ထဲမှာ ကျွန်တော်တို့ ရေးထားတဲ့ program မှာ run-time error တက်မယ်ဆိုရင် catch block ကနေ ဖမ်းပေးမှာပါ။ ဒီလိုရေးမယ်ဆိုရင်တော့ program ဟာ error ကြောင့် abnormal terminate မဖြစ်တော့ပါဘူး။ catch block အတွင်းမှာတော့ ကျွန်တော်တို့ က user ကို ဘာကြောင့် error တက်တယ် ဘယ်လို ရိုက်မှ မှန်မယ်ဆိုတာ ကို သိအောင် System.out.print(); နဲ့ ပေါ်ချင်တဲ့ စာသားကို “ “ ခံပြီး ခုလို ရေးလိုက်ပါတယ်။ “you should enter number for first number and second number” ဒီလိုရေးလိုက်ခြင်းဟာ program ကိုသုံးတဲ့ user အဖို့ data အမှားထည့်ခြင်းက ကာကွယ်လိုက်သလိုဖြစ်ပါတယ်။ ခုလို ပြန်ပြင်ရေးပြီးတော့ ကျွန်တော်တို့ အနေနဲ့ program ကို အရင် build လုပ်ပြီး compile လုပ်ဖို့ လိုပါတယ် ပြီး run ကြည့် မယ် ဆိုရင် တော့ program ကနေ data အမှားထည့်ရင် ပုံမှာ ပြထားသလို message ပြန်ထုတ်ပြမှာပါ။
Method ဘာလို့ ခွဲရေးကြတာလဲ Method ကိုဘာလို့ ခွဲရေးဖို့လိုတာလဲ
ခုဆို ကျွန်တော်တို့ က main method ထဲမှာ ပဲ အလုပ်တွေ အကုန်လုံးကို လုပ်ဖို့ ခိုင်းထားပါတယ်။ ခုလို calculator လို program သေးသေးလေးတောင် code တွေများနေရင် တကယ့် program အကြီးရေးမယ်ဆိုရင်ရော ဘယ်လို ရှင်းအောင်လုပ်ကြမလဲ။ ဒီနေရာမှာ တင် method ခွဲရေးရခြင်းအကြောင်းရင်းပါပဲ။ နောက်တစ်ခုက method တစ်ခု ခွဲရေးလိုက်ခြင်းဟာ program တစ်ခု ကိုရှင်းလင်းစေရုံမျှမကပါဘူး ထပ်ခါထပ်ခါ လဲ အသုံးပြုလို့ရပါတယ်။ OOP ရဲ ့concept တစ်ခု ဖြစ်တဲ့ code reuse ဖြစ်စေပါတယ်။ java မှာ method ကို ဘယ်လိုတည်ဆောက်လဲ ကြည့်ရအောင်။ method တစ်ခု ဖြစ်လာပြီဆိုရင် သူလဲ နံမည်ပေးရပါတယ်။ ကျွန်တော် တို့ ခု Calculator program မှာ ပေါင်းခြင်းဆိုင်ရာ code တွေကို ရေးဖို့ sum ဆိုတဲ့ method တစ်ခု ဆောက်ကြည့်ရအောင်။
ကျွန်တော်တို့ အနေနဲ့ comment အနေနဲ့ ရေးချင်ရင်တော့ (//) ပိတ်ပြီးရေးပေးလို့ရပါတယ်။
//method declaration
public void sum()
{
}
Method တစ်ခုဟာလဲ scope ရှိရပါတယ် ဘယ်မှာ စတယ် ဘယ်မှာဆုံးတယ်ဆိုတာ ကို { and } နဲ့
Scope ကိုသတ်မှတ်ပါတယ်။ တစ်ခု သတိထားရမှာက method တစ်ခု ဟာ class အတွင်းမှာ ပဲ ရှိပါတယ်။ သူဟာ သူနဲ့ မျိုးနွယ်တူ main method ထဲမှာ လဲ ၀င်မရေးပါဘူး ။ class ရဲ့ အပြင်ဖက် main method ရဲ့ အပြင်ဖက်မှာ ရေးရပါတယ်။ ခုကျွန်တော်တို့ sum ဆိုတဲ့ method တစ်ခု ဆောက်လို့အပြီးမှာ စောစောပိုင်းကရေးထားတဲ့ code တွေက sum နဲ့ ဆိုင်တဲ့ အတွက် sum method ထဲကို ပြောင်းထည့်ပါ့မယ်။ ပုံမှာ ပြထားတဲ့ အတိုင်းပါပဲ။
ကျွန်တော်တို့ program ကိုပြန် run ကြည့်ပါမည်။ ဘာ output မှ ထွက်လာမှာ မဟုတ်ပါဘူး။ ဟုတ်ပါတယ် ။ method က ကျွန်တော်တို့ ခေါ်မှ run မှာပါ။ မလိုလို့ မခေါ်ရင်သူက သူ့ဟာသူနေပါတယ်။ အဓိကက ခု ကျွန်တော်တို့ program မှာ အဓိက အလုပ်လုပ်တာက main method မှာပါ။ main method မှာ ကျွန်တော်တို့ က ခုရေးထားတဲ့ sum ဆိုတဲ့ method ကိုခေါ်မှ သာ sum method က အသက်ဝင်လာမှာပါ။ ခု ကျွန်တော် main method ကနေ ခေါ်မယ်ဆိုရင် 2 မျိုး သုံးပြီးခေါ်လို့ရပါတယ်။
- တစ်မျိုးက object ဆောက်ပြီးခေါ်တာနဲ့
- နောက်တစ်ခု က static ဆိုတဲ့ keyword တစ်ခုကို sum method မှာ ထည့်ရေးတာပါပဲ။
ခုကျွန်တော်တို့ အလွယ်ကူဆုံးခေါ်ကြည့်ရအောင်။ public void sum() နေရာမှာ public static void sum() ဆိုပြီးပြင်ရေးမယ်။ နောက် main method မှာ sum(); ဆိုပြီးခေါ်ကြည့်ပါမည် ပုံမှာပြထားတဲ ့အတိုင်းပေါ့။
ဒီလိုဆိုရင်တော့ sum method က စ run ပါပြီ။ main method ထဲလဲ မရှုပ်တော့ဘူးပေါ့။ ဒီတစ်ခါ ကျွန်တာ်က main method ထဲမှာ ပဲ sum(); ဆိုတာ ကို နှစ်ခါရေးပြီး run ကြည့်ကြမယ်ဗျာ. ဘယ်လိုဖြစ်လာမလဲ ?
ဒီလိုဆိုရင်တော့ ကျွန်တော်တို့ ပေါင်းတဲ့ program လေးက နှစ်ခါတိတိ ကျွန်တော်တို့အတွက်အလုပ်လုပ်ပေးမှာပါ။ တကယ်လို့များ method ကိုသာ ခွဲမရေးရင် main method ထဲမှာ ပဲ ကျွန်တော်တို့ က ပထမရေးထားတဲ ့code ကို နှစ်ခါ ရေးချင်ရေးမရေးချင်ရင် program ကိုနှစ်ခါ run ရမှာပါ။ ဒီလိုဆိုရင်တော့ method ခွဲရေးခြင်းရဲ့ ကောင်းတဲ့ အချက်က ပေါ်လွင်လောက်ပါပြီ။
တစ်ခု ကျန်တာက sum method ကို main method ကခေါ်တဲ့ အခါမှာ static keyword မသုံးပဲ ခေါ်တဲ့ပုံစံပါ။ ခုပုံစံက တကယ်ရေးရမယ့်ပုံစံပါပဲ။ အားနည်းချက်အားသာချက်ကိုယ်စီရှိပါတယ်။ Getting start with java ရဲ့ မထမဆုံးမှာ scanner class ကို ခေါ်ခဲ့သလိုမျိုးပါပဲ။ ခုလဲ ကျွန်တော့် Calculator class တစ်ခုလုံးကို ကျွန်တော် object တစ်ခု ဆောက်လိုက်ပါမယ်။ အဲဒါကို ကျွန်တော် main method ထဲ က ဆောက်မှာပါ။ ခု ကျွန်တော် object တစ်ခု မဆောက်ခင် sum method ထဲမှာရေးထားတဲ့ static keyword ကို ဖျက်ပြီး ပြန် run စေချင်ပါတယ်။ program က ပုံမှန် run သေးရဲ ့လားစမ်းကြည့်တဲ့အခါ အလုပ်မလုပ်တော့ပါဘူး error တက်ပါတယ်။
ခုကျွန်တော်က Calculator ကို ကိုယ်တိုင်ပြန်ပြီး object ဆောက်ပါမယ်။ new keyword ကိုသုံးပြီး object ဆောက်ပါမယ် သူ့ကိုနံမယ် တစ်ခုလဲ ပေးပါ့မယ်။
Calculator cal = new Calculator();
ဆိုပြီးဆောက်ပါမယ်။
ခု ကျွန်တော်က cal ဆိုတဲ့ နံမယ်နဲ့ Calculator class object ကနေ sum() ဆိုတဲ့ method ကို ခေါ်ပါ့မယ်။ method ကိုခေါ်တဲ့ အခါ calculator ရဲ့ object name နောက်မှာ ဒေါ့ [.] ချပြီး ခေါ်ပါ့မယ်။ ပုံမှာ ပြထားတဲ့ အတိုင်းပြန်ပြင်ပါ့မယ်။
ဘာကြောင့် static keyword မပါရင် sum method မှာ error တက်ရလဲဆိုတော့ main method က static ဖြစ်နေလို့ပါ။ static method တစ်ခု က ခေါ်မယ့် method ဟာ static မဟုတ်ရင်ခေါ်လို့မရပါဘူး။ ခု ကျွန်တော်တို့ က Calculator ဆိုတာကို object ဆောက်လိုက်တော့ သူ့ main method ကနေ Calculator object က ပိုင်ဆိုင်ထားတဲ့ sum method ကိုပြန်ခေါ်သလိုဖြစ်တဲ့ အတွက် ပြသနာမရှိပါဘူး။ နောက်ပိုင်းမှာ static သဘောကို ရေးစမ်းကြည့်ရင်း ပိုနားလည်လာမယ်ထင်ပါတယ်။ကဲအခု ကျွန်တော်တို့ က ပေါင်းထားတဲ့ အဖြေမထွက် မချင်း user input မမှန်မချင်း ကျွန်တော်က user ဆီက input တောင်းတာကိုပေါ်စေချင်တယ်။ အဲဒါလေး ဘယ်လိုရေးရင်ရမလဲ ဆက် စဉ်းစားကြည့်ရအောင်။
Back To Getting Start With Java
Facebook comments:










ဆက်ရေးပါဦးဗျာ… အားပေးနေပါတယ်… xD