December 6, 2011

About Variables

ပြီးခဲ့သော ပိုစ်ဖြင့် ပရိုဂရမ်အကြောင်းကို မိတ်ဆက်ခဲ့ပါသည်။ ပရိုဂရမ်ဆိုသည်မှာ ဘာသာရပ် တစ်မျိုးဖြင့် ရေးသားထားသော အစီအစဉ်အစုအဝေး တစ်မျိုးဖြစ်သည်ဟု ဖော်ပြခဲ့ပါသည်။ လမ်းညွှန်သည့် ပရိုဂရမ် ဆိုပါက လမ်းညွှန်သည့် အစီအစဉ်ကို ရေးသားထားရန် လိုအပ်ပါသည်။ ထို့နည်းတူပင် ကော်ပီကူးသည့် ပရိုဂရမ် ဆိုပါက ကော်ပီကူးမည့် အစီအစဉ်ကို ရေးသားထားပါသည်။

Variable ဆိုသည်မှာ


ကျွှန်တော်တို့ စစချင်း လူတွေ့ရင် အမည်ခေါ်ပြီး နှုတ်ဆက်တက်သည့် ပရိုဂရမ်တစ်ခုကို ရေးရန် စဉ်းစားကြည့်ပါမည်။ ကျွှန်တော်တို့ရေးမည့် ပရိုဂရမ်မှာ မင်းလွင်ကို နှုတ်ဆက်ကွာ လို့ခိုင်းလာလျှင် "မင်္ဂလာပါ   မင်းလွင်" ဟု ပြန်ပြောမည့် ပရိုဂရမ် ဖြစ်သည်။ တဖန် ကောင်းကောင်းကို နှုတ်ဆက်ကွာ လို့ခိုင်းချင် ခိုင်းပါလိမ့်မည်။

ပရိုဂရမ်မှ ကြည့်မည်ဆိုလျှင် အမည်တစ်ခုဖြင့် ခိုင်းစေလာပါက ထိုအမည်ဖြင့် နှုတ်ဆက်စကားကို ပြောမည်ဖြစ်သည်။ မည်သည့်အမည် လာမည်ဆိုသည်ကို မသိနိုင်ပေ။ အဲ့ဒီအတွက် မသိကိန်းတစ်ခုအနေဖြင့် "အမည်" ကို အသုံးပြု၍ "မင်္ဂလာပါ အမည်" ဟု ရေးသားထားမည်။

အကယ်၍ အမည် ၏ နေရာတွင်၊ "မင်းလွင်" ဟု အစားထိုးခဲ့ပါက "မင်္ဂလာပါ မင်းလွင်" ဟု ဖော်ပြနိုင်မည် ဖြစ်၏။ ကောင်းကောင်းဟု အစားထိုးခဲ့ပါက၊ "မင်္ဂလာပါ ကောင်းကောင်း" ဟု ဖော်ပြမည် ဖြစ်ပါသည်။ ဤကဲ့သို့ ပြောင်းလည်းနိုင်သော မသိကိန်းများကို Variable ဟု ခေါ်ဆိုကြ၏။ Variable သည် Vary နှင့် Able ကို ပေါင်းစပ်ထားသော စကားလုံးဖြစ်ပြီး၊ ပြုပြင်ပြောင်းလည်းနိုင်ခြင်းဟု အဓိပ္ပါယ်ရပါသည်။

အမည် = မင်းလွင်
မင်္ဂလာပါ အမည် = မင်္ဂလာပါ မင်းလွင်
အမည် = ကောင်းကောင်း
မင်္ဂလာပါ အမည် = မင်္ဂလာပါ ကောင်းကောင်း


Java ၏ Variable များ

Java သည် Strong Type Programming Language တစ်မျိုးဖြစ်၏။ "ဘာကြီးလဲဟ၊ Strong Type ဆိုတာ" ရုတ်တရက်ကြားလျှင် အမည်နဲ့ပင် လန့်သွားနိုင်ပါသည်။ အခြားမဟုတ်ပါ။ Java တွင် အသုံးပြုသော Variable ၏ Type ကို အတိအကျ သတ်မှတ်ရန်လိုအပ်ပါသည်။ အသုံးပြုနေသော Variable တစ်ခုအား Type မတူသော တန်ဖိုးဖြင့် အစားထိုး၍မရနိုင်ပေ။

အထက်ပါဖော်ပြပါအတိုင်း Java သည် Variable များ၏ Type ကို တင်းကြပ်စွာသတ်မှတ်ထားသော ဘာသာရပ် တစ်မျိုးဖြစ်ပါသောကြောင့်၊ Variable များကို ဖော်ပြရာတွင် Type နှင့်တကွ ဖော်ပြရန်လိုအပ်ပါသည်။

အများသိပြီးတဲ့အတိုင်း Java သည် OOP တစ်ခုဖြစ်၏။ ထို့အတွက် အသုံးပြုနေသော အချက်အလက်မှာကိုယ် Object တစ်ခု အဖြစ် ကြည့်မြင်ပြီး ရေးသားလိုသော Instruction ကို ရေးသားလေ့ရှိ၏။ Object တစ်ခုတွင် ပိုင်ဆိုင်သင့်သော အချက်အလက်နှင့် လုပ်ဆောင်ချက်များကို ဖော်ပြထားသည်ကို Class ဟု ခေါ်ပါသည်။

Java တွင် Class တစ်ခုကို ရေးသားဖော်ပြမည် ဆိုလျှင် အောက်ပါအတိုင်းရေးသားလေ့ရှိ၏။
public class Person {

    private String name;
    private int age;

    ...
    public String getName() {
        return this.name;
    }

    public void addAge(int year) {
        this.age = this.age + year;
    }
}


Java တွင် Class တစ်ခု၏ ပိုင်ဆိုင်မှု့များ၊ ပရိုဂရမ်အတွင်းတွင် အသုံးပြုလိုသည့် အချက်အလက်များကို Variable များဖြင့် အသုံးပြုလေ့ရှိ၏။ အထက်ပါ ကလပ်စ်ထဲတွင် name, age, year တို့သည် Variable များဖြစ်ကြ၏။ Java ဘာသာရပ်တွင် အသုံးပြုနိုင်သည့် နေရာပေါ်တွင်မှုတည်၍ အဓိကအားဖြင့် Variable အား နှစ်မျိုးနစ်စား ခွဲခြားနိုင်ပါသည်။ ကလပ်စ်တစ်ခုလုံးမှ အသုံးပြုနိုင်သော Global variable နှင့်၊ သတ်မှတ်ထားသော အစိတ်အပိုင်းများတွင်သာ အသုံးပြုနိုင်သော Local Variable ဟူ၍ဖြစ်၏။

Global Variable

အထက်ဖော်ပြပါအတိုင်း Java Class တစ်ခုတွင် name နှင့် age ကဲ့သို့ ပိုင်ဆိုင်မှု့ အချက် အလက်များနှင့်၊ getName နှင့် addAge ကဲ့သို့ Method များကို ပိုင်ဆိုင်၏။ getName လုပ်ဆောင်ချက်သည် getName() ၏အနောက် လက်သဲကွင်း အဖွင့်မှ လက်သဲကွင်းအပိတ် အထိ အတွင်းတွင် ရေးသားရန်လိုအပ်၏။ အတွင်းပိုင်းတွင် return this.name; ဟု ရေးသားထားပါသဖြင့် getName လုပ်ဆောင်ချက်ကို ခေါ်ယူပါက name ကို ခေါ်ယူသည့်နေရာအား ပြန်ပို့ပေးမည် ဖြစ်သည်။

    public String getName() {
        return this.name;
    }
ဤ name ကဲ့သို့ ကလပ်စ်တစ်ခုလုံး အတွင်းတွင် အသုံးပြုနိုင်သော Variable များကို Global Variable များဟု ခေါ်ဆိုပါသည်။ Global Variable များအား Class တစ်ခုလုံးမှ မြင်နိုင်သော နေရာတွင် သတ်မှတ် ရေးသားရန် လိုအပ်ပြီး၊ အောက်ပါအတိုင်း ရေးသားဖော်ပြနိုင်ပါသည်။
    public static final boolean PASS = true;
    private int counter = 0;
    String name; 

အထက်ပါနမှုနာ public static final boolean PASS = true ကို ကြည့်ပါ။ PASS သည် ကိန်း၏ အမည် ဖြစ်ပြီး၊ အမျိုးမျိုးသော သတ်မှတ်ချက်များကို ရေးသားနေပါသည်။ pubilc သည် ဆက်သွယ်နိုင်မှု့ ကို ဖော်ပြနေသော သတ်မှတ်ချက်ဖြစ်ပြီး၊ static သည် Variable ၏ Nature ကို ဖော်ပြနေ၏။ တဖန် final သည် ထိုကိန်း၏ တန်ဖိုးအား ပြောင်းလည်းနိုင်ခြင်း မရှိကြောင်းကို ဖော်ပြနေ၏။ boolean  သည် ထိုVariable ၏ Type ဖြစ်ပြီး Variable တစ်ခုကိုဖော်ပြရာတွင် မဖြစ်မနေ သတ်မှတ် ရေးသားရန် လိုအပ်ပါသည်။ ညီမျှခြင်း သင်္ကေတသည် ထိုVariable အား အစားထိုးနေခြင်းဖြစ်ပြီး၊ false သည် ထိုကိန်း PASS ၏ တန်ဖိုးဖြစ်ပါသည်။

တဖန် တတိယမြောက် ဖော်ပြချက်ကို ကြည့်ပါ။ String name; ဟုသာ ရေးသားထားပါသည်။ Type ဖြစ်သော String နှင့် Variable ၏ အမည် (Identifier) ဖြစ်သော name ကိုသာ ရေးသားထား၏။ ကျန်သော သတ်မှတ်ချက်များကို မရေးသားထားပါ။ ဤကဲ့သို့ သတ်မှတ်ချက်များအား အထွေအထူး ရေးသားထားခြင်းမရှိပါက မှုလ တန်ဖိုးများ အတိုင်း သတ်မှတ်သွားမည် ဖြစ်၏။

အသုံးပြုနိုင်သော သတ်မှတ်ချက်များ

အမည် အမျိုးအစား ရှင်းလင်းချက်
Accessibility Java ကလပ်စ်တစ်ခုတွင် ပိုင်ဆိုင်မှု့ အချက်အအလက်နှင့် လုပ်ဆောင်ချက်များ၏ ဆက်သွယ်နိုင်မှု့ကို အောက်ပါအတိုင်း ခွဲခြား သတ်မှတ်နိုင်ပါသည်။
ဘာမှမရေးသားထားခြင်း အကယ်၍ ဆက်သွယ်နိုင်မှု့အား သတ်မှတ် ရေးသားထားခြင်း မရှိပါက လက်ရှိကလပ်စ်က တည်ရှိသော ပက်ကေဂျ်(Package) အတွင်းတွင် လက်ရှိကလပ်စ်၏ အင်စတန့်စ်များမှတဆင့် ခေါ်ယူအသုံးပြုနိုင်ပါသည်။
public အများသုံး အနေနှင့် ခွင့်ပေးထားပါသည်။ မည်သည့်နေရာက မဆိုခေါ်ယူ အသုံးပြုနိုင်မည် ဖြစ်သည်။
protected လက်ရှိကလပ်စ်အား စူပါကလပ်စ်(super class) အဖြစ် သတ်မှတ် တည်ဆောက် ထားသော ဆင့်ပွား(sub class) များ အတွင်းတွင် ခေါ်ယူအသုံးပြုနိုင်ပါသည်။
private ပြင်ပမှ လုံးဝဆက်သွယ် အသုံးပြုနိုင်မည် မဟုတ်ပေ။ မိမိ၏ အင်စတန့်စ် အတွင်းမှသာ အသုံးပြုနိုင်မည် ဖြစ်သည်။
Nature ကိန်းအမျိုးအစားသည် အသုံးပြုမည့် ကိန်းသည် ကလပ်စ်ကိန်းဖြစ်ကြောင်း၊ အင်စတန့်စ်ကိန်း ဖြစ်ကြောင်း အမျိုးအစားကို ဖော်ပြပေးပါသည်။ အသေးစိတ် ကွာခြားချက်အား "Class နဲ့ Instance ကို​ကွဲ​အောင်​လုပ်​ပါ" တွင် ဖော်ပြထားပါသည်။
ဘာမှမရေးသားထားခြင်း အကယ်၍ ကိန်းအမျိုးအစားအား သတ်မှတ် ရေးသားထားခြင်း မရှိပါက၊ အင်စတန့်စ်ကိန်း အဖြစ်အသုံးပြုနိုင်မည် ဖြစ်သည်။ အင်စတန့်စ်ကိန်းများအား အင်စတန့်စ် လုပ်ဆောင်ချက် အတွင်းမှသာ ခေါ်ယူ အသုံးပြုနိုင်မည် ဖြစ်ပြီး၊ ကလပ်စ် လုပ်ဆောင်ချက်များ အတွင်းမှ ခေါ်ယူ အသုံးပြုနိုင်မည် မဟုတ်ပေ။
static static ကို သတ်မှတ်ရေးသားထားပါက ထိုကိန်းအား တည်ငြိမ်ကိန်းများ၊ ကလပ်စ်ကိန်းများဟု ခေါ်ဆိုပါသည်။  ကလပ်စ်ကိန်းများအား ကလပ်စ် လုပ်ဆောင်ချက်များအပြင်၊ အင်စတန့်စ်ကိန်းများမှပါ ခေါ်ယူ အသုံးပြုနိုင်မည် ဖြစ်ပါသည်။
တန်ဖိုးအား ပြုပြင်ပြောင်းလည်းနိုင်ခြင်း ဤသတ်မှတ်ချက်သည် ကိန်းတစ်ခု၏ တန်ဖိုးအား ပြုပြင်ပြောင်းလည်းမှု့ ရှိမရှိကို ဖော်ပြနိုင်သော သတ်မှတ်ချက်တစ်ခု ဖြစ်၏။
ဘာမှမရေးသားထားခြင်း သတ်မှတ်ရေးသားထားခြင်း မရှိပါက တန်ဖိုးများအား ပြုပြင်ပြောင်းလည်း နိုင်ပါသည်။
filal final ဟု သတ်မှတ်ရေးသားထားပါက အထက်ပါကိန်းအား နောက်ထပ်ပြုပြင် ပြောင်းလည်းနိုင်ခြင်း မရှိတော့ပေါ်။
Type Java ၏ ကိန်းတစ်ခုကို ဖော်ပြရာတွင် မဖြစ်မနေ ဖော်ပြရန် လိုအပ်ပါသည်။ အဓိကအားဖြင့် Primitive Type နှင့် Reference Type ဟူ၍ ခွဲခြား နိုင်ပါသည်။
Primitive Type Primitive Type ဆိုသည်မှာ byte, int အစရှိသော CPU မှ တိုက်ရိုက် အသုံးပြုနိုင်သော ပုံစံနှင့်၊  char နှင့် boolean ကဲ့သို့ ပရိုဂရမ်မင်းဘာသာရပ် ဘက်မှ ပြင်ဆင်ထားသော အခြေခံပုံစံများကို ခေါ်ပါသည်။ 
Reference Type Primitive Type မဟုတ်သော Type များသည် Reference Type များဖြစ်ကြသည်။ Java သည် Object များကို အချက်အလက်များ အနေဖြင့် အသုံးပြုနိုင်ပြီး၊ ထိုအချက်အလက်များကို Object Type ဒါမှ မဟုတ် Reference Type များဟု ခေါ်ဆိုပါသည်။ String, Interger အစရှိသည့် ခြုံငုံကလပ်စ်များမှ အစ၊ Collection, List များကဲ့သို့ အလဂိုရစ်သမ် Class များသည် Reference Type များ ဖြစ်ကြ၏။

Primitives နှင့် Wrapper Class

Java တွင် Primitive Type တိုင်းအတွက် သူ၏ Wrapper Class များကို ပြင်ဆင်ထားလေ့ရှိ၏။ Primitive Type မှ ပိုင်ဆိုင်သော အချက်အလက်များကို သူ၏ Wrapper Class များက ပိုင်ဆိုင်ပါသည်။ Object များကိုသာ အသုံးပြုနိုင်သော Collection များကို အသုံးပြုရာတွင်၊ Primitive Type မှ Wrapper Class အဖြစ်ပြောင်းလည်း၍ အသုံးပြုလေ့ရှိပါသည်။

ပုံစံ ရှင်းလင်းချက် ပမာဏ (အနည်းဆုံး မှ အများဆုံး) ခြုံငုံကလပ်စ်
void ပုံစံမရှိ java.lang.Void
boolean အမှန်အမှားပုံစံ 1 true, false java.lang.Boolean
char စာလုံးပုံစံ
ယူနီကုဒ်စာလုံးများ
16 0 မှ FFFF java.lang.Character
byte ဘိုတ်ပုံစံ 8 -128 မှ 127 java.lang.Byte
short အင်တီဂျာပုံစံ အတို 16 -32768 မှ 32767 java.lang.Shot
int အင်တီဂျာပုံစံ 31 Integer.MIN_VALUE မှ Integer.MAX_VALUE java.lang.Integer
long အင်တီဂျာပုံစံ အရှည် 64 Long.MIN_VALUE မှ Long.MAX_VALUE java.lang.Long
float ဒသမကိန်းပုံစံ 32 Float.MIN_VALUE မှ Float.MAX_VALUE java.lang.Float
double ဒသမကိန်းပုံစံ အရှည် 64 Double.MIN_VALUE မှ Double.MAX_VALUE java.lang.Double


လိုကယ်ကိန်း

တဖန် ကျွှန်တော်တို့ addAge ဆိုသော လုပ်ဆောင်ချက်ကို ပြန်ကြည့်ပါမည်။

    public void addAge(int year) {
        this.age = this.age + year;
    }
int year ဆိုသော Variable တစ်ခုကို Parameter အဖြစ် လက်ခံရယူနေပါသည်။ အတွင်းပိုင်းတွင် Global Variable age အား age နှင့် year ၏ ပေါင်းခြင်းရလဒ်ဖြင့် အစားထိုးနေပါသည်။ year ဆိုသော Variable အား addAge ၏ Parameter အဖြစ် သတ်မှတ်ထားပါသောကြောင့် addAge Method တွင် အသုံးပြုနိုင်ခြင်း ဖြစ်ပါသည်။ အခြားသော Method များမှ year အား အသုံးပြု၍ မဖြစ်နိုင်ပေ။ 


လုပ်ဆောင်ချက်တစ်ခု အတွင်းတွင် အခြေအနေ အနေအထားပေါ်တွင် မှုတည်၍ အစီအစဉ် အစိတ်အပိုင်းများ အမျိုးမျိုးခွဲခြားနိုင်၏။ အကယ်၍၊ ဒါမှမဟုတ်၊ မဖြစ်မချင်း၊ ရှိသ၍၊ ဖြစ်သ၍ အစရှိသည့် လမ်းညွှန်စာလုံးများ(Control) အပေါ်မှုတည်၍ အစီအစဉ်များကို အမျိုးမျိုး ပြောင်းလည်းရေသားရန် လိုအပ်ပါသည်။


ကျွှန်တော်တို့ ရေခဲမုန့်ဝယ်သည့် ပရိုဂရမ်တစ်ခုကို စဉ်းစားကြည့်ကြရအောင်။ ရေခဲမုန့်ဝယ်ရန် ပိုက်ဆံကို ရယူပြီး နောက်ဆုံးရေခဲမုန့်အား ချောကလက်ကိုဝယ်ပြီး၊ ကျန်သော ရေခဲမုန့်အား ဗနီလာရေခဲမုန့်ကို ဝယ်ယူပါမည်။
public List<IceCream> buyIceCream(int money) {

    List<IceCream> cart = new ArrayList<IceCream>();
    // တန်ဖိုးကို ရယူခြင်း
    int price = getPriceOfIcecream();
    // အရေအတွက်ကို ရယူခြင်း
    int count = money / price;

    for (int i = 0; i < count; i++) {
        cart.add(buyIceCream(VANILLA));
        if (i == count -1) {
            cart.add(buyIceCream(CHOCOLA));
        } 
    }
    return cart;
}

count Variable သည် လုပ်ဆောင်ချက် အတွင်းတွင် သတ်မှတ်ထားပါသောကြောင့် buyIceCream လုပ်ဆောင်ချက် အတွင်း မည်သည့်နေရာက မဆို ခေါ်ယူအသုံးပြုနိုင်၏။ သို့ရာတွင် အခြားသော လုပ်ဆောင်ချက်များ မှမှု အသုံးပြုနိုင်မည် မဟုတ်။

တဖန် အရေအတွက် အတိုင်း ရေခဲမုန့်ကို ဝယ်ယူရန် for လမ်းညွှန် ဝါကျကို အသုံးပြုထားပါသည်။ for စာပိုဒ်သည် "{" မှ စ၍ "}" တွင် ဆုံးပါသည်။ int i ကိန်းသည် for ဝါကျ၏ ဖော်ပြချက် အတွင်းတွင် သတ်မှတ်ထားသောကြောင့် for စာပိုဒ် အတွင်းတွင် အသုံးပြုနိုင်မည် ဖြစ်သည်။ for စာပိုဒ်၏ အပြင်မှ အသုံးပြုနိုင်မည် မဟုတ်ပေ။ ဤကဲ့သို့ အသုံးပြုလိုသည့် နေရာအတွင်းတွင် သတ်မှတ်ရေးသားသော Variable များအား Local Variable များဟု ခေါ်ဆိုပါသည်။


အသုံးပြုနိုင်သော သတ်မှတ်ချက်များ

အမည်အမျိုးအစားရှင်းလင်းချက်
တန်ဖိုးအား ပြုပြင်ပြောင်းလည်းနိုင်ခြင်းဤသတ်မှတ်ချက်သည် ကိန်းတစ်ခု၏ တန်ဖိုးအား ပြုပြင်ပြောင်းလည်းမှု့ ရှိမရှိကို ဖော်ပြနိုင်သော သတ်မှတ်ချက်တစ်ခု ဖြစ်၏။
ဘာမှမရေးသားထားခြင်းသတ်မှတ်ရေးသားထားခြင်း မရှိပါက တန်ဖိုးများအား ပြုပြင်ပြောင်းလည်း နိုင်ပါသည်။
filalfinal ဟု သတ်မှတ်ရေးသားထားပါက အထက်ပါကိန်းအား နောက်ထပ်ပြုပြင် ပြောင်းလည်းနိုင်ခြင်း မရှိတော့ပေါ်။
TypeJava ၏ ကိန်းတစ်ခုကို ဖော်ပြရာတွင် မဖြစ်မနေ ဖော်ပြရန် လိုအပ်ပါသည်။ အဓိကအားဖြင့် ကနဦးပုံစံနှင့် ကိုးကားပုံစံဟူ၍ ခွဲခြား နိုင်ပါသည်။
Primitive TypePrimitive Type ဆိုသည်မှာ byte, int အစရှိသော CPU မှ တိုက်ရိုက် အသုံးပြုနိုင်သော ပုံစံနှင့်၊  char နှင့် boolean ကဲ့သို့ ပရိုဂရမ်မင်းဘာသာရပ် ဘက်မှ ပြင်ဆင်ထားသော အခြေခံပုံစံများကို ခေါ်ပါသည်။ 
Reference TypePrimitive Type မဟုတ်သော Type များသည် Reference Type များဖြစ်ကြသည်။ Java သည် Object များကို အချက်အလက်များ အနေဖြင့် အသုံးပြုနိုင်ပြီး၊ ထိုအချက်အလက်များကို Object Type ဒါမှ မဟုတ် Reference Type များဟု ခေါ်ဆိုပါသည်။ String, Interger အစရှိသည့် ခြုံငုံကလပ်စ်များမှ အစ၊ Collection, List များကဲ့သို့ အလဂိုရစ်သမ် ကလပ်စ်များသည် ကိုးကားပုံစံများ ဖြစ်ကြ၏။

ဤVariableများဟူသော အခန်းဖြင့် Java ဘာသာရပ်တွင် အသုံးပြုနေသော Variable အကြောင်းကို ဖော်ပြခဲ့၏။ အရှည်ကြီး ဖော်ပြခဲ့သော်လည်း လောလောဆယ် အောက်ပါအချက်များကို မှတ်မိထားရင် လုံလောက်ပြီဖြစ်သည်။ အသေးစိတ်မှာမူ တကယ်တမ်းရေးသောအခါမှ Javadoc ကို ကြည့်ရင်ဖြင့် သုံးပါများသောအခါ အလိုလို မှတ်မိသွားပါလိမ့်မည်။
  • Variable များအား ဖော်ပြရန်မှာ Type ကို မဖြစ်မနေ ဖော်ပြရန်လိုအပ်ပါသည်။
  • Type များတွင် Primitive Type နှင့် Reference Type ဟူ၍ရှိကြ၏။
  • javascript ကဲ့သို့ Variable တစ်ခုအား၊ Type မတူသော တန်ဖိုးဖြင့် အစားထိုး၍မရနိုင်ပေ။
  • Variable များအား Global Variable နှင့် Local Variable ဟု ခွဲခြားနိုင်၏။
  • Global Variable မှာ Class အတွင်းမည်သည့်နေရာမှ မဆို အသုံးပြုနိုင်ပါသည်။
  • Local Variable ကိုမူ သတ်မှတ်ရေးသားထားသော စာပိုဒ်အတွင်းမှာသာ အသုံးပြုနိုင်မည် ဖြစ်သည်။

လေးစားစွာဖြင့်
မင်းလွင်

21 comments:

  1. အကိုေရ Java Name ေတြကိုအရင္ဆံုး Java အေခၚအေ၀ါနဲ႔ေရးျပီး ကြင္းထဲမွာမွ ျမန္မာလိုျပန္ဆိုေပးပါလားဗ်ာ။ ဖတ္ရတာနညး္နည္းအဆင္မေျပျဖစ္လုိ႔ပါ

    ReplyDelete
  2. First off I would like to say wonderful blog!

    I had a quick question which I'd like to ask if you do not mind.
    I was interested to know how you center yourself and clear your thoughts before writing.
    I've had a hard time clearing my thoughts in getting my thoughts out there.

    I truly do take pleasure in writing however it
    just seems like the first 10 to 15 minutes are usually
    lost simply just trying to figure out how to begin. Any ideas or tips?
    Thank you!

    ReplyDelete
  3. My family members always say that I am killing my time here at net, except I know I
    am getting familiarity everyday by reading thes pleasant
    articles.

    ReplyDelete
  4. Hello! I realize this is somewhat off-topic however I had to
    ask. Does operating a well-established website such as yours take a
    lot of work? I'm completely new to running a blog however I do write
    in my diary daily. I'd like to start a blog so I
    can easily share my own experience and thoughts online. Please
    let me know if you have any recommendations or tips for
    brand new aspiring bloggers. Thankyou!

    ReplyDelete
  5. It's remarkable to pay a quick visit this web page and reading the views of all friends about this post, while I am also zealous of getting experience.

    ReplyDelete
  6. whoah this weblog is fantastic i like studying your posts.

    Keep up the great work! You know, lots of persons are searching around for
    this information, you could help them greatly.

    ReplyDelete
  7. This is very attention-grabbing, You are a very skilled blogger.
    I've joined your feed and look ahead to in quest of more of
    your great post. Additionally, I have shared your site
    in my social networks

    ReplyDelete
  8. Link exchange is nothing else except it is only placing the
    other person's web site link on your page at appropriate place and other person will
    also do similar in support of you.

    ReplyDelete
  9. It's wonderful that you are getting ideas from this
    article as well as from our dialogue made at this place.

    ReplyDelete
  10. Hmm is anyone else encountering problems with the pictures on this
    blog loading? I'm trying to figure out if its a problem on my end or if it's the blog.
    Any suggestions would be greatly appreciated.

    ReplyDelete
  11. Hi, Neat post. There's a problem with your site in internet explorer, might test this?
    IE nonetheless is the marketplace chief and a good portion of other people
    will miss your excellent writing due to this problem.

    ReplyDelete
  12. Thanks for sharing your thoughts. I truly appreciate your efforts and I will be
    waiting for your further post thank you once again.

    ReplyDelete
  13. Thanks on your marvelous posting! I certainly enjoyed reading it,
    you will be a great author.I will be sure to bookmark your blog and will eventually come back very soon. I want to encourage you to continue your great
    writing, have a nice day!

    ReplyDelete
  14. Actually no matter if someone doesn't know afterward its up to other people that they will help, so
    here it takes place.

    ReplyDelete
  15. I am now not certain where you are getting your info, but good topic.

    I must spend some time finding out much more or understanding
    more. Thank you for excellent info I was looking for this info for my mission.

    ReplyDelete
  16. Hiya very cool website!! Guy .. Excellent .. Wonderful ..
    I will bookmark your blog and take the feeds also?

    I'm glad to find numerous useful information here in the submit, we need work out extra strategies on this regard, thanks for sharing.
    . . . . .

    ReplyDelete
  17. It's an awesome article in favor of all the online visitors; they will obtain advantage from it I am
    sure.

    ReplyDelete
  18. Heya i am for the first time here. I found this board and I find It truly useful & it helped me out much.
    I hope to give something back and aid others like you helped me.

    ReplyDelete
  19. I'm gone to inform my little brother, that he should also pay a visit this
    website on regular basis to get updated from latest reports.

    ReplyDelete
  20. Good way of telling, and pleasant article to obtain information about
    my presentation topic, which i am going to deliver in college.

    ReplyDelete
  21. I do consider all of the ideas you have introduced in your post.

    They're very convincing and can definitely work. Still,
    the posts are too quick for newbies. May just you please
    extend them a bit from next time? Thanks for the post.

    ReplyDelete