မူရင္းေရးသားသူ
Java ဘာသာရပ္အေၾကာင္း ေရးသားထားေသာ စာအုပ္အေတာ္မ်ားမ်ားတြင္ Arrayအေၾကာင္း ေရးသား
ခ်က္မ်ားကို ဖတ္ၾကည့္ပါက ေၾကနပ္ဖြယ္ေကာင္းေလာက္ေအာင္ ေရးသားခ်က္မ်ားေရးသားထားသည္မွာ
အလြန္နည္းပါးလွေပသည္။ အဘယ္ေၾကာင့္ဆိုေသာ္Java ၏ Array သည္ Instance တစ္
ခုျဖစ္ေသာေၾကာင့္၎၊ Java ၌ Multiple Dimensions Array ကို ေရးသား၍ မျဖစ္ေသာေၾကာင့္၎ အစ
ရွိေသာ အေၾကာင္းမ်ားေၾကာင့္ ျဖစ္သည္ဟု ထင္ပါသည္။ Java ၌ Multiple Dimensions Array
ကို ေရးသား၍ မရေၾကာင္း ေျပာလၽွင္ အံ့ၾသေသာသူမ်ားပင္ ရွိေနေပသည္။
Java ၏ Array သည္ Classတစ္မ်ိဳးျဖစ္၏
Java ၏ Arrayမ်ားကိုနားလည္ေစရန္ သတိထားစရာ အခ်က္မွာ Java ၏ Array သည္ Reference
Type ျဖစ္သည္ ဆိုသည့္ အခ်က္ ပင္ျဖစ္သည္။ သည္လိုေျပာ၍လည္း နားလည္ရခက္ေသးသည္ ဆိုလၽွင္
Array သည္ Class အမ်ိဳးအစားတစ္ခုျဖစ္သည္ ဟုဆိုပါက ပို၍နားလည္ လြယ္မည္ဟုထင္ပါသည္။ ပို၍
သိသာေသာ အခ်က္မွာ ေအာက္ပါနမွုနာ စာေၾကာင္းကို ၾကည့္မည္ဆိုပါက Array သည္ Instance အျဖစ္
လုပ္ယူေနေၾကာင္း သိရွိနိုင္မည္ျဖစ္သည္။
int [] intArray = new int [5];
အထက္ပါ စာေၾကာင္းကိုၾကည့္မည္ ဆိုပါက new ကိုအသုံးျပဳၿပီး int ၅ခုစာ Array ကိုလုပ္ယူေနေၾကာင္း
ကို သိရွိနိုင္ေပသည္။ ဤစာေၾကာင္းကို ၾကည့္ျခင္းအားျဖင့္ Array သည္ Reference Type ျဖစ္ေၾကာင္း
သိရွိနိုင္ေပသည္။ တဖန္ Java Array အေၾကာင္းကို ရွုပ္ေထြးစြာ အမွတ္မွားေစလိုေသာ အေၾကာင္းအရာ
မ်ား ရွိေပေသးသည္။ ေအာက္ပါစာေၾကာင္းကို ၾကည့္ရွုပါ။
int [] intArray = {1,2,3,4,5};
Java ကိုစတင္ေလ့လာသူမ်ားကို စိတ္ရွုပ္ေစေသာ အေၾကာင္းအရာတစ္ခုျဖစ္သည္။
Primitive Type တစ္ခုဟု အထင္မွားေစေသာ အေၾကာင္း တစ္ခုျဖစ္ေပသည္။
Instance ခ်ပုံအတိုင္း ေရးသားမည္ဆိုပါက ေအာက္ပါအတိုင္းျဖစ္ေပသည္။
int [] intArray = new int [] {1,2,3,4,5};
intArray Instance ကို စတင္လုပ္ယူေနေသာအခါ int [] constructor အား [1,2,3,4,5]
အခ်က္အလက္ မ်ားကိုေပးေနသည္ဟု မွတ္ယူနိုင္ေပသည္။
Array သည္ Class တစ္ခုရဲ့ Instance ျဖစ္မွန္း
သိေအာင္ လက္ေတြ႕ Code မ်ားကို ေရးၾကည့္ၾကရေအာင္။
public class ArrayTest {
public static void main(String [] args) {
int [] a = new int [] {1,2,3,4,};
int [] b = a.clone();
for(int i : b)
System.out.print(i + ",");
System.out.println();
if (a == b)
System.out.println("Same Instance");
else
System.out.println("Different Instance");
}
}
အထက္ပါ ArrayTest Class၏ int [] b = a.clone()စာေၾကာင္းကိုသတိထားၾကည့္ၾကည့္ပါ။ int [] b instance ကို instance a အား
cloneပြားယူျခင္းျဖင့္ လုပ္ယူေနသည္ကို ေတြ႕ရေပမည္။ clone()
လုပ္ေဆာင္ခ်က္သည္ java.lang.Object Classကပိုင္ဆိုင္ေသာ
လုပ္ေဆာင္ခ်က္ျဖစ္ၿပီး java.lang.Object၏ sub class မ်ား
အားလုံးသည္လည္း အသုံးျပဳနိုင္ေပသည္။ Java ၏ Classမ်ားအားလုံးသည္
java.lang.Object ရဲ့ sub class မ်ားျဖစ္ၾကေသာေၾကာင့္ Array Class ျဖစ္ေသာ
int [] ၏ instance သည္လည္း clone() လုပ္ေဆာင္ခ်က္ကို အသုံးျပဳနိုင္ျခင္းျဖစ္သည္။
အျမန္မွတ္ခ်က္
Java ဘာသာရပ္၌ Arrayသည္ Classအမ်ိဳးအစားတစ္မ်ိဳးျဖစ္၏။
ထို႔ေၾကာင့္ Array ၏ instance မ်ားသည္ java.lang.Object ၏
member fields မ်ား၊ method မ်ားကို အသုံးျပဳနိုင္ ေပသည္။
Java ၌ Multiple Dimensions Arrayကိုေရးသား၍မရ
Java Array တြင္ Multi Dimensions Array မ်ားကို
အသုံးျပဳ၍မရေၾကာင္း ကိုေလ့လာၾကည့္ပါဦးမည္။ C ကဲ့သို႔ေသာ
အျခားေသာ ဘာသာရပ္မ်ားကိုေလ့လာခဲ့ဘူးသူမ်ားသည္ Javaတြင္လည္း
Multiple Dimensions Array မ်ားကို အသုံးျပဳနိုင္လိမ့္မည္ဟု
ထင္မွတ္မွားတတ္ၾကေပသည္။ အေၾကာင္းမွာ ေအာက္ပါအတိုင္း
ထင္ေယာင္ထင္မွား ျဖစ္ေစေသာ ေရးသားခ်က္မ်ား ေၾကာင့္ျဖစ္သည္။
int [][] array = new int [] {{1,2,3},{4,5,6}};
အထက္ပါ ေရးသားပုံကိုၾကည့္မည္ဆိုလၽွင္ int[][]အား
2D Arrayဟု ထင္မွတ္မွားၾကေပလိမ့္မည္။ အမွန္မွာ
int[] instance ကို ပိုင္ဆိုင္ေသာ Array တစ္ခုပင္ျဖစ္ေပသည္။
အျခားေသာ Array မ်ားကဲ့သို႔ပင္
Class အမ်ိဳးအစားတစ္ခုပင္ျဖစ္၏။
ဤအခ်က္ကိုေလ့လာၾကည့္ၾကရေအာင္။ ေအာက္ပါေရးသားခ်က္ကိုၾကည့္ပါ။
int [][] array = new int [] {{1,2,3},{4,5}};
အကဲ၍ int[][] သည္ 2D Array ဆိုပါက အထက္ပါေရးသားခ်က္တြင္
Compile Errorျဖစ္ေပၚမည္ ျဖစ္သည္။ Java တြင္
အထက္ပါေရးသားခ်က္သည္ Errorမျဖစ္ပါ။
အဘယ္ေၾကာင့္ဆိုေသာ္ အထက္ပါေရးသားခ်က္သည္
int [] instance ႏွစ္ခုပါဝင္ေသာ Array တစ္ခုသာျဖစ္ေသာေၾကာင့္ ျဖစ္ပါသည္။
အျမန္မွတ္ခ်က္
Java တြင္ Multiple Dimensions Array ဟူေသာ Data Type
သည္ အသုံးျပဳ၍ မရနိုင္ေပ။ Java Array ၏ သုံးလို႔ရေသာအခ်က္မ်ား
သုံးမရေသာ အရာခ်က္မ်ားကို သိရွိထားမည္ဆိုပါက Array မ်ားကိုအသုံးျပဳရာတြင္
အခက္အခဲရွိေတာ့မည္မဟုတ္ေပ။
0 comments:
Post a Comment