Tutorials of .Net Framework Part(10)
Constructor
Constructor အကြောင်းကို ကျွန်တော် အပေါ်မှာအနည်းငယ်ပြောခဲ့ပါတယ်။Object ဆောက်တဲ့အခန်းမှာပါ။မှတ်မိကြမှာပါ…။Constructor လို့ဖြစ်လာတာနဲ့class name နဲ့တူကိုတူရပါမယ်။ နောက်တစ်ချက်က Constructor ဆိုတာက Method တစ်ခုပါဘဲ။
ဘေးနားက () ကိုကြည့်ချင်းအားဖြင့်သိနိုင်ပါတယ်။ဒါပေမဲ့သူက ဘာ Return Type မှမပါတာကိုတွေ့ရပါတယ်။ ဘာတောင်မပါဘူးလဲဆိုတော့ void ဆိုတဲ့ return မပြန်တဲ့ Type တောင် မပါဘူးဗျ။ကျွန်တော်တို့အပေါ်မှာ object ဆောက်ခဲ့ကြပါတယ်။အဲ့ဒီတုန်းက ကျွန်တော် တို့Constructor အကြောင်းကိုသိခဲ့တယ်။ကျွန်တော်တို့ဘယ်နေရာမှာမဆို object ဆောက်လိုက်ရင် CLR ကသူ့အလိုလို Constructor အခွံကြီးဘဲဆောက်ပေးပါတယ်။Constructor အခွံကြီးဘဲဆိုတာ ဘာလဲဆိုတော့ နောက်ကျရင် သိပါလိမ့်မယ်။
Constructor ကဘာလုပ်လဲဆိုတော့ ကျွန်တော် တို့object ဆောက်ပြီးတော့ရေးလိုက်တဲ့အခါတိုင်း သူ့ကိုသွားပြီးတော့ တစ်ခါ Run ပါတယ်။ဘယ်လိုလဲဆိုတော့ အားလုံးနားလည်အောင် ရှင်းပြပါမယ်။ကျွန်တော် တို့object နှစ်ခုဆောက်လိုက်တယ်ဗျာ။အဲ့ဒီ ပထမ object အောက်မှာ s1.name=”BillGate”; ဆိုပြီးတော့ရေးလိုက်တယ်။
နောက် object တစ်ခုအောက်မှာ s2.name=”Microsoft”; ဆိုပြီးတော့ရေးလိုက်တယ်။အဲ့ဒီနှစ်ခုကို code တွေထပ်ရေးပြီးတော့ Run လိုက်ရင် ပုံမှန်ဆိုရင် စာနှစ်ကြောင်းဘဲပေါ်လိမ့်မယ်။ဘာဖြစ်လို့လဲဆိုရင် ကျွန်တော် ပြောထားတဲ့အတိုင်းဘဲလေ။ကျွန်တော် တို့က ကိုယ့်ဘာသာကို Constructor မဆောက်ရင် CLR ကသူ့ဘာသာသူအလိုအလျှောက် အခွံကြီးဘဲဆောက်သွားလို့ပါ။
ဒါကြောင့်စာနှစ်ကြောင်းဘဲပေါ်တာပေါ့။Constructor ဆောက်လိုက်ရင်တော့ စာလေးကြောင်းပေါ်လိမ့်မယ်။ဘာဖြစ်လို့လဲဆိုတော့ ကျွန်တော် တို့ဆောက်ခဲ့တဲ့ object ကနှစ်ခုလေ။Constructor ဆိုတာက object တစ်ခုကို Run ပြီးတဲ့အခါတိုင်းသူ့ကိုသွားပြီးတော့အလုပ်လုပ်ပါတယ်။ဒါကြောင့် လေးခါပေါ်နေတာပါ။အဲ့ဒီလိုပေါ်ချင်ရင်တော့ Constructor ကိုဆောက်ပေးရပါလိမ့်မယ်။
အခုပြောနေရင်နည်းနည်းတော့ရှုပ်နေလိမ့်မယ်။ဒါကြောင့် ကျွန်တော် တို့Program လေးရေးပြီးတော့စမ်းကြည့်လိုက်ကြရအောင်။
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Console1
{
class ConstructorsTest
{
private string name;
private int age;
private int mark;
public ConstructorsTest()
{
Console.WriteLine(“Constructor Called”);
}
private void Display()
{
Console.WriteLine(“My name is {0} , I’m {1} and I got {2} marks”, name, age, mark);
Console.WriteLine(“”);
}
public static void Main()
{
ConstructorsTest conTest1 = new ConstructorsTest();
conTest1.name = “Zaw Zaw”;
conTest1.age = 18;
conTest1.mark = 1000;
conTest1.Display();
ConstructorsTest conTest2 = new ConstructorsTest();
conTest2.name = “Aung Aung”;
conTest2.age = 19;
conTest2.mark = 900;
conTest2.Display();
ConstructorsTest conTest3 = new ConstructorsTest();
conTest3.name = “Maung Maung”;
conTest3.age = 20;
conTest3.mark = 800;
conTest3.Display();
}
}
}
output ကတော့ဒီလိုလေးပေါ်လာပါလိမ့်မယ်။
ဆိုပြီးတော့ ကျွန်တော် ရေးပေးထားပါတယ်။ဒါလေးကိုအရင်ရေးပြီးတော့စမ်းကြည့်လိုက်ပါ။စမ်းပြီးရင်တော့ ကျွန်တော် ရှင်းပါမယ်။အဲ့ဒီမှာ အရင်ဆုံး Constructor Called ဆိုတဲ့ စာကြောင်းလေးကိုတွေ့ရမှာဖြစ်ပါတယ်။ပြီးမှ Zaw Zaw 18 1000 ကိုတွေ့ရမှာဖြစ်ပါတယ်။ပြီးရင် နောက်တစ်ကြောင်းမှာက Constructor Called ဆိုတဲ့စာကြောင်းလေးကို ပြန်တွေ့ရမှာဖြစ်ပါတယ်။
အဲ့ဒါတွေဖြစ်ရတာဘာကြောင့်လဲဆိုတော့ ကျွန်တော် အပေါ်မှာပြောထားသလို object တစ်ခုကို Run ပြီးတဲ့အခါတိုင်း Constructor ကိုသွားပြီးတော့ Run ပါတယ်။ဆိုတဲ့အတိုင်းဘဲ ကျွန်တော် ကအပေါ်မှာ object သုံးခုဆောက်ထားတယ်။ ဒါကြောင့် Object သုံးခုဆိုတော့ Constructor သုံးခုထွက်ပေါ်လာတာပေါ့ဗျာ။
အဲ့ဒီ Constructor() ဆိုတဲ့ Method ထဲမှာ ကိုယ်ကြိုက်သလိုကြေညာလို့ရပါတယ်။ဒါဆိုရင် အားလုံးနားလည်သဘောပေါက်ပြီလို့ကျွန်တော် ယူဆပါတယ်။ဒီထက်ပိုပြီးတော့ နားလည်သွားအောင် ကျွန်တော် နောက်ထပ် Program တစ်ခုထပ်ရေးပြီးတော့ စမ်းကြည့်လိုက်ရင် တော့ Constructor အကြောင်းကိုသေချာနားလည်သဘောပေါက်သွားပါလိမ့်မယ်။
ကဲဆက်ရေးကြည့်လိုက်ကြရအောင်။
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Console1.Books
{
class ConstructorsTest
{
private string name;
private int age;
private int mark;
public ConstructorsTest()
{
Console.WriteLine(“Enter the First Number”);
int num1 = int.Parse(Console.ReadLine());
Console.WriteLine(“Enter the Second Number”);
int num2 = int.Parse(Console.ReadLine());
int sum = num1 + num2;
Console.WriteLine(“Result is “+sum);
Console.WriteLine(“”);
}
private void Display()
{
Console.WriteLine(“My name is {0} , I’m {1} and I got {2} marks”, name, age, mark);
Console.WriteLine(“”);
}
public static void Main()
{
ConstructorsTest conTest1 = new ConstructorsTest();
conTest1.name = “Zaw Zaw”;
conTest1.age = 18;
conTest1.mark = 1000;
conTest1.Display();
ConstructorsTest conTest2 = new ConstructorsTest();
conTest2.name = “Aung Aung”;
conTest2.age = 19;
conTest2.mark = 900;
conTest2.Display();
ConstructorsTest conTest3 = new ConstructorsTest();
conTest3.name = “Maung Maung”;
conTest3.age = 20;
conTest3.mark = 800;
conTest3.Display();
}
}
}
Result ကတော့ဒီလိုထွက်လာမှာပါ။
အဲ့ဒါလေးကိုစမ်းကြည့်လိုက်ပါအုံး။ဒါလေးကိုတော့ ကျွန်တော် မပြောတော့ဘူးနော်။လွယ်လွယ်လေးပါ။ပြီးရင် ကိုယ့်ဘာသာကိုယ် ဘယ်ဟာလေးကဘာကြောင့်ဖြစ်ပေါ်လာသလဲဆိုတာကိုသေသေချာချာလေး လေ့လာကြည့်လိုက်ပါ။ အကျဉ်းချုပ်ပြောရရင် Constructor ဆိုတာက တူညီတဲ့ အလုပ်တွေကို လုပ်ချင်တယ်ဆိုရင်သူ့အထဲ
မှာသွားရေးထားလိုက်ရုံပါဘဲ။
ကဲ…ဒီလောက်ဆိုရင် နားလည်သဘောပေါက်မယ်လို့မျှော်လင့်ပါတယ်။
ဆုံးသည်ထိဖတ်သောကြောင့် ကျေးဇူးတင်ပါတယ်။
အားလုံးဘဲကျန်းမာရွှင်လန်းကြပါစေ။
ဆက်ပါဦးမည်….။
Facebook comments:





လာဖတ်သွားါတယ်အကိုရေ ကျေးဇူးပါ
ကိုဇော်ရေ အမြဲတမ်းအားပေးနေတယ်ဗျာ မြန်မာလူမျိုးတွေကို မြန်မာဘာသာလေးနဲ့
ရှင်းပြတဲ့အတွက်အရမ်းကျေးဇူးတင်တယ်
Hi Ko ZawMin, May I know this Part (10) is the last article for Tutorials of .Net Framework? Thanks.
အဲ့ဒီလိုတော့ မဟုတ်ဘူးခင်ဗျ… ဒါက ပြီးဖို့နေနေသာသာ အစတောင် မရှိသေးဘူး…
ဘာဖြစ်လို့ဆက်မရေးသလဲဆိုတော့ ကျွန်တော်မအားသေးတဲ့အပြင် ဒါကိုလေ့လာတဲ့သူ အစဉ်တစိုက်လိုက်လုပ်တဲ့သူ မရှိသလောက်နည်းလို့ ကျွန်တော်ဆက်မရေးတော့တာဗျ…
ဘာဖြစ်လို့ Reply တွေမပြန်သလဲ ဆိုတာ ကိုထည့်ရေးကြည့်တော့ ပြောခံထိသဗျ…
အဲ့ဒါတွေကြောင့်ပါ…
ကျေးဇူးတင်ပါတယ်…
ဟုတ်ကဲ့ ဆက်ပြီးရေးပါဦး ကိုဇော်မင်းရဲ. Tutorial တွေကိုလိုက်ပြီးလုပ်ပါတယ် ပြီးတော့တခြား C# Coding Standards နဲ. Tutorials of ASP.net 3.5 post တွေကိုလဲလေ့လာနေပါတယ်
မြန်မာလိုရှင်းပြထားတာ အရမ်းကောင်းပါတယ်
ကျေးဇူးတင်ပါတယ်
ကိုဇော်မင်းရေ အချိန်ရရင် WCF, WPF,LINQ အကြောင်းလေးတွေကို ရေးစေချင်ပါတယ်
Web service ကနေ WCF ကို ပြောင်းပြီးသုံးချင်လို့ပါ ကိုဇော်မင်းရေးထားတာတွေက ရှင်းလည်းရှင်း
နားလည်လွယ်လို့ ကျေးဇူးတယ်ပါတယ်