[ထပ္ဆင့္သင္ခန္းစာ 1] class အသံုးၿပဳပံု

[ထပ္ဆင့္သင္ခန္းစာ 1] class အသံုးၿပဳပံု

Lecture 9 ကိုဖတ္ၿပီး classes ေတြအေၾကာင္းကိုေသခ်ာသိပ္နားမလည္ဘူးဆိုတဲ႕ေမးခြန္းေတြလက္ခံရွွရွိထားပါတယ္။ ဟုတ္ပါတယ္ class ရဲ႕ concept ကနားလည္ဖို႔ခက္ပါတယ္။

အဲ႔ဒါေၾကာင္႔ class ဘယ္လိုသံုးရမယ္ဆိုတာကို additional lecture အေနနဲ႕ေ႐ြးခ်ယ္ထားပါတယ္။

လက္ေတြ႕အသံုးၿပဳ ၾကည္႔ရေအာင္။

class ေတြကိုအသံုးၿပဳ ၿပီးဘာေတြလုပ္လို႔ရမယ္ထင္ပါသလဲ?

class ေတြကိုအသံုးၿပဳ ၿပီးေတာ႔ တူညီတဲ႔ properties ေတြရွိတဲ႔ မတူညီတာေတြကို ေကာင္းေကာင္း အသံုးၿပဳ လို႔ရပါတယ္။

ဥပမာအေနနဲ႕ ကားတစ္စီးကိုစဥ္းစား ၾကည္႔ရေအာင္၊ ကမာၻေပၚမွာ ကားအမ်ိဳးအစားေတြအမ်ားၾကီးရွိေပမဲ႕ အကုန္လံုးမွာ တူညီတဲ႔ အင္ဂ်င္၊ ဘီး၊ steering လက္ကိုင္ေတြရွိပါတယ္။

ကားတစ္စီး စီမွာလည္းရွိသင္႔ရွိထိုက္တဲ႔ property ရွိၾကပါတယ္။ Java  မွာေတာ႔ အဲ႔ဒီဆက္သြယ္မႈေတြကိုတိတိက်က် class အေနနဲ႕ သတ္မွတ္လို႔ရပါတယ္။

တၿခားအေနနဲ႔ class ဆိုတာဟာ အရာဝတၳဳေတြရဲ႕ သဘာဝေတြကိုစုစည္းထား ၿပီး အရာဝတၳဳေတြရဲ႕ Template လို႔လည္းသတ္မွတ္လို႔ရပါတယ္။

1. File class ကိုစမ္းၿပီးသံုးၾကည္႔ရေအာင္

အရင္ကရွင္းၿပဖူးတဲ႔ API reference ေတြကိုဖတ္ၿပီးၾကမယ္လို႔ထင္ပါတယ္။

ဒီတစ္ခါမွာေတာ႔ file တစ္ခုမွာ ရွိသင္႔ရွိထိုက္တဲ႔ property ေတြကိုသံုးၿပီး File class  တစ္ခု ေဆာက္ၾကည္႔ရေအာင္။

C:/work folder ေအာက္မွာ ေအာက္ပါအတိုင္း "test.txt" ဆိုတဲ႕ file ကိုတည္ေဆာက္ပါမယ္။

test.txt

Hello Java World!

ၿပီးရင္ေတာ႔ အဲ႔ဒီ "test.txt" ကေန information ေတြကိုရဖို႔အတြက္ program တစ္ခုကို File class သံုးၿပီး same folder ေအာက္မွာပဲေရးပါမယ္။

အဲ႔ဒီ File ထဲမွာ ေအာက္ပါ အတိုင္း program ကိုေရးၿပီး  class name ကို "FileSample.java" လို႔ေပးပါမယ္။

FileSample.java

import java.io.File;

public class FileSample

{

    public static void main(String[] args)

    {

        File testFile = new File("test.txt");

        String name = testFile.getName();

        System.out.println(name);

        int size = (int)testFile.length();

        System.out.println(size);

        boolean isWritable = testFile.canWrite();

        System.out.println(isWritable);

    }

}

ၿပီးေတာ႔ run ၾကည္႔လိုက္ရင္ ေအာက္ပါအတိုင္း result ကိုၿပပါလိမ္႔မယ္။

extra1a

ဒီမွာေတာ႔ file name, file size ရယ္ ၿပီးေတာ႔ file က writeable ဟုတ္လား မဟုတ္လားဆိုတာပါ ရယူႏိုင္ပါတယ္။

ေသခ်ာသြားေအာင္ confirm လုပ္ၾကည္႔ရေအာင္။

file name က “test.txt” ၊ file size က 17 bytes ၿပီးေတာ႔ file က read-only မဟုတ္ပါဘူး အဲ႔ဒါဟာ writable ဆိုတဲ႕သေဘာပါ။

Method ဆိုတာကေတာ႔ class နဲ႔ဆက္သြယ္ထားတာပါ။ တူညီတဲ႔ class ေတြမွာ တူညီတဲ႔ property ႐ွိသလို တူညီတဲ႕ method လည္းရွိႏိုင္ပါတယ္။

ဒီမွာေတာ႔ test file ကို "test.txt" ဆိုၿပီး အေသေပးထားတာပါ။

ဟုတ္ပါတယ္ "test.txt" ဆိုတာ file ဆိုတဲ႕ အဓၸိယ္ပယ္ရွိတာေၾကာင္႔ test file ဆိုတာ File class ရဲ႕ member လို႔လည္းေၿပာလို႔ရပါတယ္။

အဲ႔ဒီ testFile ကို File class ရဲ႕ instance လို႔လည္းေခၚႏိုင္ပါတယ္။

တၿခားအေနနဲ႕ တူညီတဲ႕ class မွာရွိေပမဲ႕ instance ေတြဟာကြဲၿပားၿခားနားၾကပါတယ္။

ဥပမာတစ္ခု စမ္းၾကည္႔ရေအာင္

C:/work folder ေအာက္မွာ "test2.txt" လို႔ေခၚတဲ႔ file တစ္ခု ကိုေအာက္ပါအတိုင္း ေရးၿပီး စမ္းၾကည္႔ရေအာင္

test2.txt

Hello World!

"FileSample.java" ကိုအနီေရာင္လိုင္း ေတြအတုိင္း အသစ္ၿပန္ေရးပါမယ္။

import java.io.File;

public class FileSample

{

    public static void main(String[] args)

    {

          File testFile2 = new File("test2.txt");

 

          String name = testFile2.getName();

          System.out.println(name);

          int size = (int)testFile2.length();

          System.out.println(size);

          boolean isWritable = testFile2.canWrite();

          System.out.println(isWritable);

    }

}

Execute လုပ္လိုက္ရင္ ေအာက္ပါအတိုင္း result ကိုၿပပါလိမ္႔မယ္။

extra1b

ခုနက result နဲ႔ေတာ႔ မတူႏိုင္ပါဘူး။

testFile2 class မွာ အေပၚက testFile class နဲ႔ တူညီတဲ႔ field ေတြရွိၿပီး same method ကေန value ေတြကိုရယူႏိုင္ပါတယ္။

ဒါေပမဲ႔ testFile2 class ရဲ႕ field value ဟာ testFile class ရဲ႕ field value နဲ႔ ကြာၿခားႏိုင္ပါတယ္။

တၿခားအေနနဲ႕ testFile2 နဲ႔ testFile မွာမတူညီတဲ႔ instance ေတြ things ေတြရွိႏိုင္ပါတယ္။

အခုေလာက္ဆိုရင္ file handling ရဲ႕ concept ကို file class သံုးၿပီး အသံုးၿပဳတာကို နားလည္ေလာက္ၿပီထင္ပါတယ္။

file class ရဲ႕ member ၿဖစ္တဲ႔ instance မွာ တူညီတဲ႕ element နဲ႔ ability ရွိတယ္ဆိုတာ နားလည္ေလာက္ၿပီထင္ပါတယ္။

2. StringBuffer class ကိုသံုးၾကည္႔ရေအာင္

အခုခ်ိန္ထိ files နဲ႔ပတ္သတ္ ၿပီး လြယ္လြယ္နဲ႕နားလည္မဲ႕ example ကိုသံုးထားပါတယ္။

တၿခား example ကိုသံုးၿပီး စမ္းၾကည္႔ရေအာင္

StringBuffer class ဆိုတာဟာ character string ကို handle လုပ္ႏိုင္ၿပီး  java မွာအသံုးၿပဳႏိုင္ပါတယ္။

StringBuffer class သံုးၿပီး sample program တစ္ခု စမ္းၾကည္႔ရေအာင္ filename ကိုေတာ႔ “StringBufferSample.java” လို႔ေပးပါမယ္။

StringBufferSample.java

public class StringBufferSample

{

    public static void main(String[] args)

    {

        StringBuffer strBuffer = new StringBuffer("test");

        int size1 = (int)strBuffer.length();

        System.out.println(size1);

        strBuffer.append("test2");

        int size2 = (int)strBuffer.length();

        System.out.println(size2);

        System.out.println(strBuffer.toString());

    }

}

ၿပီးရင္ အဲ႔ဒီ program ကို execute လုပ္ၾကည္႔လိုက္ရင္ ေအာက္ပါအတိုင္း result ထြက္လာပါလိမ္႔မယ္။

extra1c

အေပၚက program မွာေတာ႔ "length()" နဲ႔ "append()" ဆိုတဲ႔ method ႏွစ္ခုကို သံုးထားပါတယ္။

character string ရဲ႕ length ကိုတိုင္းတဲ႕အခ်ိန္နဲ႕ character string တစ္ခုနဲ႔တစ္ခု ဆက္တဲ႕အခ်ိန္မွာ အဲ႔ဒီ method ႏွစ္ခုကိုသံုးႏိုင္ပါတယ္။

အရင္က examples ေတြနဲ႔ မတူပါဘူး တစ္ခုသတိထားရမွာက strBuffer ရဲ႕ element ကိုေၿပာင္းဖို႔အတြက္လည္း "append ()" method ကိုအသံုးၿပဳႏိုင္ပါတယ္။

length()” ရဲ႕ value ေၿပာင္းသြားတာကိုေတာ႔ နားလည္မယ္ထင္ပါတယ္။

ေနာက္ထပ္အေနနဲ႕ "toString()" method ဆိုတာဟာ StringBuffer class ကေန String class ေၿပာင္းခ်င္ရင္ သံုးတာပါ။

ဒီမွာ ေတာ႔ character string ရဲ႕ contents ကိုၿပဖို႔အတြက္ System.out.println() ကိုသံုးပါမယ္။

API reference ကိုသံုးၿပီး StringBuffer class မွာ method ေတြအမ်ားၾကီးရွိတာရယ္ ၿပီးေတာ႔ အဲ႔ဒီ method ေတြရဲ႕ အသံုးၿပဳပံုကို ေလ႔လာႏိုင္ပါတယ္။

ဒီ lecture ရဲ႕ အက်ဥ္းခ်ဳပ္ကေတာ႔

၁.class ဆိုတာဟာ တိက်တဲ႔ properties ေတြရွိတဲ႔ အရာဝတၳဳ ကိုဆက္ႏြယ္တဲ႔ class ၿဖစ္ေၾကာင္းနားလည္ရန္

၂. တူညီတဲ႕ class မွာတူညီတဲ႕ ability ရွိတယ္ဆိုတာနားလည္ရန္

၃. class နဲ႔ method ဆက္စပ္တဲ႔  အေၾကာင္းနားလည္ရန္


Check our Facebook Page!