[သင္ခန္းစာ – ၁၀] Multiple classes မ်ားကို အသံုးျပဳျခင္း

[သင္ခန္းစာ - ၁၀]  Multiple classes မ်ားကို အသံုးျပဳျခင္း

အရင္က သင္ခန္းစာေတြ ဘယ္လိုလဲ အဆင္ေျပၾကမယ္လို ့ထင္ပါတယ္။ အခုသင္ခန္းစာအထိ Java မွာ "class representation" ဘယ္လိုလုပ္တယ္ဆိုတာကို နားလည္ခဲ့မွာေပါ့။ "class" ေတြအေၾကာင္းကို "program" အမ်ိဳးမ်ိဳးမွာ႐ွာျပီး ေလ့က်င့္တာေကာင္းပါတယ္။ ဒါဆိုသင္ခန္းစာ ဆက္လိုက္ၾကလိုက္ရေအာင္။ အခု "class" တခုကေန "class" အမ်ားၾကီးအထိ "create" လုပ္ၾကရေအာင္။

အခု "ClassSample" ဆို တဲ့ "class" နဲ႔ "AnotherClassSample" ဆိုတဲ့ "class" ကို ေအာက္မွာေဖာ္ျပထားတဲ့အတိုင္း တည္ေဆာက္ၾကမယ္။

"File" ေတြရဲ႕နာမည္ကို "class" ေတြရဲ႕နာမည္အလိုက္ ေပးၿပီး "save" ပါ။

"File name" က "ClassSample.java"

public class ClassSample

{

private String msg;                                  // (1)

public ClassSample()

{

System.out.println("Constructor Was Called.");   // (2)

}

public void setMessage(String inMsg)

{

msg = inMsg;                                     // (3)

}

public void printMessage()

{

System.out.println("message:" + msg);            // (4)

}

public static void main(String[] args)

{

ClassSample classSample;                         // (5)

classSample = new ClassSample();                 // (6)

classSample.setMessage("Hello Java World! ");     // (7)

classSample.printMessage();                      // (8)

AnotherClassSample anotherClass = new AnotherClassSample(); // (9)

anotherClass.printName();                        // (10)

anotherClass.setName("bar");                     // (11)

anotherClass.printName();                        // (12)

}

}

"File name" က "AnotherClassSample.java"

public class AnotherClassSample

{

private String name;                                         // (A)

// constructer

public AnotherClassSample()                                  // (B)

{

System.out.println("AnotherClassSample Constructor!! ");  // (C)

name = "foo";                                            // (D)

}

// name setting

public void setName(String new_name)

{

name = new_name;                                         // (E)

}

// name indication

public void printName()

{

System.out.println("My name is " + name + ".");          // (F)

}

}

"Class" ေတြ "create" လုပ္လို ့ျပီးသြားရင္ “ClassSample” ဆိုတဲ့ "class" ကို "compile" လုပ္ ရေအာင္။

"Compile" လုပ္ရမဲ့ အဆင့္ေတြကို မွတ္မိေသးရဲ  ့လား။ အခု "compile" မလုပ္ခင္မွာ “ClassSample.java” ရွိတဲ့ "directory" ကို "command prompt" ကေနသြားထား လိုက္ပါ ။ တကယ္လို ့ "compile" လုပ္တဲ့အခ်ိန္မွာ "ClassSample" နဲ႔ "AnotherClassSample" ရဲ႕ "File" ေတြက တူညီတဲ႔ "directory" ေအာက္မွာ မရွိဘူးဆိုရင္ ေအာက္မွာျပထားတဲ့အတိုင္း "error message" ေပၚလာပါလိမ့္မယ္။

messagedisplay01

messagedisplay2

အဲဒီ "error message" ေပၚခဲ့တယ္ဆိုရင္ “[သင္ခန္းစာ -၂] – Java Program အေၿခခံ တည္ေဆာက္ပံု” တုန္းက သင္ခဲ့တဲ့အတိုင္း "CLASSPATH Variable Setting Up" လုပ္တာကို ေသခ်ာေအာင္ စစ္ဖို ့မေမ့နဲ ့ေနာ္ "Compilation" လုပ္လို ့ရသြားျပီဆိုရင္ ေအာက္မွာ ျပထားတဲ့အတိုင္း "Output" ေတြ ့လာပါလိမ့္မယ္။

messagedisplay4

ဒီေလ့က်င့္ခန္းမွာေတာ့ ေအာက္မွာျပထားတဲ့အတိုင္း နံပါတ္ (9) က "AnotherClassSample" ရဲ  ့ "constructor" ကိုေခၚတယ္ နံပါတ္ (10) နဲ (့12) မွာက "AnotherClassSample" ရဲ  ့"name information" ေတြကို "display" လုပ္တယ္ နံပါတ္ (11) မွာက "name information" 1 ခု ကို ထည့္ေပးလိုက္တာပါ။

AnotherClassSample anotherClass = new AnotherClassSample(); // (9)

"ClassSample class" ရဲ့ "instance" တစ္ခုတည္ေဆာက္တုန္းက နံပါတ္ (5) မွာ "class" ကို "declare" လုပ္ခဲ့ပါတယ္။ ျပီးေတာ့ နံပါတ္ (6) မွာ "instance" တစ္ခုကို ျပဳလုပ္ခဲ့ပါတယ္။ အခုတစ္ခါမွာေတာ့ "class" ရဲ့ "declaration" နဲ "instance creating" ကို  နံပါတ္ (9) မွာျပထားတဲ့အတိုင္း တစ္ေၾကာင္းတည္း နဲ႔ ေရးနိုင္ပါတယ္။

နံပါတ္ (10)ရဲ့ "printName() method" ကို "run" ျပီးတဲ့ေနာက္မွာ "name field" ရဲ့ တန္ဖိုးက D မွာေဖာ္ျပထားတဲ့အတိုင္း “foo” ဆိုတဲ့ "value" ျဖစ္ပါတယ္။ ဒါေပမယ့္ နံပါတ္ (11) ကို "run" ျပီးတဲ့အခ်ိန္မွာ "name field" က “foo” ကေန“bar” ဆိုတဲ့ "value" အျဖစ္ ေျပာင္းလဲသြားပါတယ္။

ဒါေၾကာင့္ နံပါတ္ (12) ရဲ့ "printName() method" ရဲ့ အေျဖအေနနဲ ့”bar” ဆိုတဲ့အေျဖကိုေတြ ့ရမွာပါ။

"Class" တစ္ခုနဲ ့ အဲဒီ "class" ကေနအျခားေသာ "class" ေတြရဲ့ "function" ေတြကို ေခၚသံုးရင္ ဘယ္လိုအက်ိဳးေက်းဇူးေတြရွိတယ္ဆိုတာကို ဒီေနရာမွာနည္းနည္းေလာက္စဥ္းစားၾကည့္ရေအာင္။

"Class" ေတြခြဲျခင္းအားျဖင့္ အဲဒီ "Class" ေတြရဲ႕ "function" တိုင္းကိုျပန္ျပီးအသံုးျပဳဖို ့လြယ္ကူသြားပါတယ္။

ဥပမာအေနနဲ ့ေျပာရမယ္ဆိုရင္ေတာ့ "AnotherClassSample" ဆိုတဲ့ "class" ထဲမွာ "name" ဆိုတဲ့  "field name" ရဲ့  "data" ကို သိမ္းတာနဲ ့"name" ရဲ့ "data" ကို "screen" ေပၚမွာ ျပေပးတဲ့ "function" နွစ္ခု ရွိပါတယ္။ တကယ္လို ့ကိုယ္က "function" ေတြ ထပ္ထည့္ခ်င္တယ္ ျပင္ခ်င္တယ္ဆိုခ်င္တယ္ဆိုရင္ "AnotherClassSample class" တစ္ခုကိုပဲ ျပင္ရုံနဲအျခား "class" ေတြကေန လြယ္လြယ္ကူကူအသံုးျပဳႏိုင္ပါတယ္။

"class" တစ္ခုထဲမွာ ေျပာင္းလဲတာေတြ၊ ျပင္တာေတြ အမ်ားၾကီးရွိနိုင္ပါတယ္။

အမွန္တကယ္ေတာ့ဒါေတြက "class" ေတြကို ခြဲဖို ့အတြက္အေၾကာင္းျပခ်က္ အမ်ားၾကီးရွိနိုင္ပါတယ္။

"Class" ခြဲတာကို ကိစၥတိုင္းမွာ ေကာင္းတယ္လို့ေတာ့ အၾကံမျပဳခ်င္ပါဘူး။

တကယ္လို ့အခ်ိဳ ့ေသာ "program" ေတြက "class" အေသးေလးေတြအျဖစ္  အမ်ားၾကီးခြဲလိုက္မယ္ဆိုရင္ အဲဒီ "classes" ေတြကို "create" လုပ္တဲ့လူကိုယ္တုိင္ေတာင္မွဘဲ အဲဒီ "classes" ေတြထဲမွာ ဘာေတြပါနိုင္မယ္ဆိုတာကို နားမလည္နိုင္ေတာ့ပါဘူး၊

ဒါ့အျပင္ အဲဒီ "class" ေတြကို အသံုးျပဳရတာ အရမ္းခက္ခဲတယ္ဆိုတာ ေတြ ့ရလိမ့္မယ္။

 

အက်ဥ္းခ်ဳပ္

၁။ "Class" နွစ္ခုအသံုးျပဳပံု။

၂။ စာေၾကာင္းတစ္ေၾကာင္းတည္းမွာ "class" ရဲ့ "instance" ေၾကျငာျခင္းနွင့္ တည္ေဆာက္ျခင္းကို ဘယ္လိုေရးရမယ္ကိုသိေစရန္။

၃။ "Classes" ေတြခြဲရျခင္းနဲ ့ပတ္သတ္ျပီး နည္းလည္ေစရန္။

ဒီသင္ခန္းစာမွာ "class" တစ္ခုထက္ပိုျပီးသံုးပံုးသံုးနည္းကို ေလ့လာခဲ့တယ္။

ေနာက္ဆံုးမွာေတာ့ “sample program” တစ္ခုရဲ့ "level" ကေရာက္သြားပါျပီ။

အရင္က "program" တစ္ပုဒ္ကို ကိုယ္တိုင္ "create" လုပ္ခ်င္ေပမဲ့ ဘယ္လိုလုပ္ရမလဲမသိဘူးလို ့ေျပာခဲ့တဲ့အခ်ိန္ကထက္ အခုအခ်ိန္မွာ "program" တစ္ပုဒ္ကို "Create" လုပ္ဖို ့ယံုၾကည္ခ်က္ရွိေနျပီလို ့ထင္ပါတယ္။

ကဲ ဒိီလိုဆိုရင္ေတာ့ ဒီသင္ခန္းစာကိုဒီမွာရပ္ၾကတာေပါ့။

ဆက္ရန္ => (Lecture 11: Program ရဲ႕ အေၿခခံ သံုးခ်က္ထဲက processing အေၾကာင္းကုိ ေဆြးေႏြးၾကရေအာင္)

Next page

Logout


Check our Facebook Page!