မင်္ဂလာပါ!

လှိုက်လှဲစွာကြိုဆိုပါသည်။ ယခု ပထမဆုံးအကြိမ် ရောက်ဖူးခြင်းဖြစ်ပါသလား? ဝင်ရောက် ဆွေးနွေး မေးမြန်းလိုပါလျှင် အောက်တွင်ဖော်ပြထားသော button များမှတဆင့် ဝင်ရောက် ဆွေးနွေးနိုင်သကဲ့သို့ အဖွဲ့ဝင်အသစ်အနေဖြင့်လည်း လျှောက်ထားနိုင်ပါတယ်။

MYSTERY ZILLION တွင် English သို့မဟုတ် Unicode ဖြင့်သာ အသုံးပြုခွင့်ရှိသည်။ ဇော်ဂျီ ၊ ဧရာ စသည်တို့ကို အသုံးပြုခွင့် မရှိ။ Unicode fonts များမှာ Mon3,Yunghkio, Myanamr3 စသည်များ အသုံးပြုနိုင်သည်။ Unicode Guide ကို ဒီမှာ Download ချပါ။ Zawgyi to Unicode Converter
Don't share ebook or software if nobody request. You can find free book websites on here. We are welcome for discussion or asking question instead.

Java အခြေခံ အမေး၊အဖြေ များ (၂)

edited December 2014 in My Article

၄၁ ။ Interface ထဲမှာ ရှိတဲ့ method တွေကို final ကြေငြာလို.ရပါသလား ?

မရပါ ။ method တစ်ခုကို final ကြေငြာခြင်းဟာ ထို method ကို override လုပ်ခွင့်မပေးဘူးလို.ဆိုလိုတာပါ။ Interface ထဲက method တွေဟာ class တစ်ခုခုကနေ override လုပ်ရေးဖို.လိုအပ်ပါတယ်။ Abstract ဒါမှမဟုတ် public modifier တွေပဲ ကြေငြာလို.ရပါတယ် ။ final ကြေငြာရင် error တက်ပါတယ်။

၄၂ ။ Interface တစ်ခု ဟာ တစ်ခြား Interface တစ်ခုကို implement လုပ်လို.ရပါသလား ?

Interface ဆိုသည်မှာ implementation မရှိသော အရာများဖြစ်သည်.အတွက် တစ်ခြား interface တစ်ခုအား implement လုပ်နိုင်စွမ်းမရှိပါ။

၄၃ ။ Interface တစ်ခုဟာ တစ်ခြား Interface တစ်ခုကို extend လုပ်လို.ရပါသလား ?

ရပါတယ်။ Interface တစ်ခုဟာ တစ်ခြား interface တစ်ခုမက ပါဘူး ၊ တစ်ခုထက်ပိုပြီးတော့လည်း inherit လုပ်လို.ရပါတယ်။

၄၄ ။ Class တစ်ခုဟာ အခြား Class တစ်ခု ထက်ပိုပြီး extend လုပ်လို.ရပါသလား ?

မရပါဘူး ။ Class တစ်ခုဟာ အခြား Class တစ်ခုကို သာ extend လုပ်လို.ရပါတယ်။ ဒါပေမယ့် Interface တစ်ခုထက်ပိုပြီးတော့ တော့ implement လုပ်လို.ရပါတယ်။

၄၅ ။ Interface ကျတော့ တစ်ခုထက်ပိုပြီး extend လုပ်လို.ရပြီး Class ကျတော့ ဘာလို.တစ်ခုထက်ပိုပြီး extend လုပ်လို.မရတာလဲ ?

အခြေခံအားဖြင့် Java သည် multiple inheritance ကိုခွင့်မပြုပါ ။ ထို.ကြောင့် Class တစ်ခုသည် အခြား Class တစ်ခုကိုသာ extend လုပ်ခွင့်ရှိပါသည်။ ဒါပေမယ့် Interface ကျတော့ လုံးဝ pure abstraction model (အကျဉ်းချုံးပဲ။ သူ.မှာ တိကျတဲ့ implementation လုပ်ဆောင်ချက်ဆိုတာမရှိဘူး ။ ဘာ processing ကိုလုပ်ဆောင်စေမယ် ဆိုတာမျိုး မရှိဘူး။) ပါ။ နောက်ပြီး Interface က Class လိုမျိုး တိကျတဲ့ hierarchy ဆိုတာလည်းမရှိဘူး ။ (တိကျတဲ့ hierarchy ဆိုတာ ဥပမာ .... Class အားလုံးရဲ. Base Class က Object ။ သူ.အောက်ကမှ Number ။ Nuber အောက်ကမှ integer ,float , double စသည်ဖြင့်)။ အဲဒါကြောင့် Interface တွေဟာ တစ်ခုထက်ပိုပြီး extend လုပ်လို.ရတာပါ။

၄၆ ။ Interface ကို final ကြေငြာလို.ရပါသလား ?

မရပါ ။ child class မရှိသော Abstract class ကဲ့သို.သာမှတ်ယူရန် ။ ရေးရင် compile time error တက်ပါတယ်။

၄၇ ။ Class တစ်ခုကို Interface အတွင်းမှာ ရေးလို.ရပါသလား ?

ရပါတယ်။ Interface ရဲ. ပိုင်ဆိုင်တဲ့ data အနေနဲ.ပေါ့ ။ Enum တွေလည်းရပါတယ်။ ဒါပေမယ့် Interface အတွင်းမှာ ကြေငြာတဲ့ variable တွေက public ပဲ ဖြစ်လို.ရပါတယ်။ private နဲ. Protected ကြေငြာလို.မရပါဘူး ။ interface အတွင်းမှာ implementation မရှိတဲ့အတွက် private variable ကြေငြာခြင်းဟာ အဓိပ္ပာယ်မရှိပါဘူး ။ Class တွေကလည်း Interface ကို implements လုပ်မှာသာဖြစ်ပါတယ်၊ extend လုပ်လို.မရတဲ့အတွက် protected variable ဆိုတာကလည်း အဓိပ္ပာယ်မရှိပါဘူး။

၄၈ ။ Interface တစ်ခုကို Class အတွင်းမှာ ကြေငြာလို.ရပါသလား ?

ရပါတယ်။

၄၉ ။ Marker Interface ဆိုတာဘာလဲ ?

ဘာမှမပါတဲ့ အလွတ် Interface ကို Marker Interface လို.ခေါ်ပါတယ်။ Java Generic တစ်ချို.မှာလည်းသုံးပါတယ် ။အမှတ်အသားတစ်ခု အနေနဲ.သတ်မှတ်ရုံသာပါ ။ အသုံးတော့နည်းပါတယ်။
ဥပမာ .... method တစ်ခုရဲ. Parameter တစ်ခုဟာ marker interface ကို implement လုပ်ထားတဲ့ ဒါမှမဟုတ် ၎င်း marker interface နဲ. အဆက်အသွယ်ရှိရပါမယ်ဆိုတာမျိုး ပြဌာန်းချင်ရင် marker Interface (အလွတ် ၊ ဘာမှမပါတဲ့ interface) ကိုသုံးပါတယ်။

၅၀ ။ overloading နဲ. Overriding ကိုသုံးတဲ့ OOP Concepts က ဘာလဲ ?

Polymorphism ပါ ။ Poly = အများ + morphis = ပုံစံ ။ များပြားသော ၊ ဆက်နွယ်သော ၊ ပြောင်းလဲသော ပုံစံများ လို. အဓိပ္ပာယ်ရပါတယ်။

၅၁ ။ Java က ဘာလို. Operator OverLoading ကို support မလုပ်တာလဲ ?

Operator Overloading လုပ်ခြင်းဟာ code တွေကို ဖတ်ရတာ ၊ ကြည်.ရတာ အရမ်းခက်ခဲစေပါတယ် ။နောက်ပြီး maintain လုပ်ရတာလည်း ခက်ခဲမှုတွေရှိပါတယ်။ အဲတာကြောင့် code တွေက ရှင်းလင်း လွယ်ကူစေရန်အတွက် Java ဟာ operator overloading ကို support မလုပ်ပါဘူး။

၅၂ ။ Externalizable ဆိုတာ ဘာလဲ ?

Serializable Interface ကို extend လုပ်တဲ့ interface ကို Externalizable လို.ခေါ်ပါတယ်။ သူ.ရဲ. data တွေကိုလည်း Stream အနေနဲ.သာ အသုံးပြုပါတယ်။သူ.မှာ method နှစ်ခုရှိပါတယ်။
(၁) ။ writeExternal(ObjectOutput out)
(၂) ။ readExternal(ObjectInput in)

၅၃ ။ local variable , member variable , class variable ဆိုတာဘာတွေလဲ ?

Method တစ်ခု အတွင်းမှာ ကြေငြာတဲ့ variable တွေကို Local variable တွေလို.ခေါ်ပါတယ်။
Class level မှာကြေငြာတဲ့ variable တွေကို member variable (Global variable) တွေလို.ခေါ်ပါတယ်။
Class level မှာ ကြေငြာပြီး static နဲ.ကြေငြာထားတဲ့ variable တွေကို class variable တွေလို.ခေါ်ပါတယ်။

၅၄ ။ read() method (file ကိုဖတ်တဲ့ method ) ဟာ file ဆုံးသွားရင် ဘာ return ပြန်လဲ ?

ဖိုင်ရဲ. အဆုံးကို ရောက်သွားရင် read() method ဟာ 1 return ပြန်ပါတယ်။

၅၅ ။ Byte Object ကို double value ပြောင်းလို.ရပါသလား ?

Object ကို primitive value သို. ပြောင်းလဲလို.မရပါ။

၅၆ ။ static inner class တွေနဲ. Non-static inner class တွေနဲ. ဘာကွာလဲ ?

Non-static inner class တွေထဲမှာ main class ရဲ. Instance တွေပါရှိနိုင်ပါတယ်။ ဒါပေမယ့် static inner class တွေမှာတော့ မည်သည်. Object ရဲ. Instatance တွေမှ ပါဝင်နိုင်ခြင်းမရှိပါဘူး ။

၅၇ ။ ဘယ်အချိန်မှာ object refrence တစ်ခု ကို interface နဲ. Typecast လုပ်လို.ရသလဲ ?

Object တစ်ခုဟာ Interface တစ်ခုကို implement လုပ်ရင် အဲဒီ့ Object ကို သူ implement လုပ်တဲ့ Interface နဲ. Typecast လုပ်လို.ရပါတယ်။

၅၈ ။ Identifiers(variable name တွေ) ကြေငြာတဲ့အခါမှာ Unicode မဟုတ်တဲ့ ဘယ် character တွေနဲ.စလို.ရလဲ ?

$(dollar sign) နဲ. _(underscore) character တွေဟာ variable ကြေငြာတဲ့အခါမှာ အစစာလုံးအနေနဲ. သုံးလို.ရပါတယ်။ Number တွေ တစ်ခြား Unicode မဟုတ်တာတွေနဲ. စလို.မရပါဘူး ။

၅၉ ။ Casting ဆိုတာ ဘာလဲ ?

Casting နှစ်မျိုးရှိပါတယ်။ primitive numeric type တွေ casting လုပ်တာနဲ. Object refrence တွေ casting လုပ်ခြင်းတို.ဖြစ်ပါတယ်။ Primitive numerice type ဆိုတာက တန်ဖိုး ကြီးတဲ့ value တွေကနေ နည်းတဲ့ type တွေကို ပြောင်းလဲသုံးတဲ့အခါမှာဖြစ်ပါတယ် ။ ဥပမာ .... double value ကနေ byte value ကိုပြောင်းတာ။
Object refrences တွေချင်း casting လုပ်တယ်ဆိုတာ က သင့်တော်တဲ့ ၊ ဆက်နွယ်တဲ့ class , interface , array type တွေအဖြစ် ကိုယ်စားပြုချင်တဲ့ အခါမှာဖြစ်ပါတယ်။

၆၀ ။ Downcasting ဆိုတာ ဘာလဲ ?

Downcasting ဆိုတာ class ရဲ. Hierarchy အရ Generic ကျတဲ့ type ကနေ specific ကျတဲ့ type ကို casting လုပ်တာကိုပြောတာပါ။ ဥပမာ .. Person class ကနေ Student Class , Engineer Class ကို casting လုပ်တာ။

၆၁ ။ Native method ဆိုတာ ဘာလဲ ?

Java Class အတွင်း မှာ Java Language ကနေ support မလုပ်တဲ့ code တွေရေးထားတဲ့ method ကို Native method လို.ခေါ်တယ်။ ဥပမာ .. C++ code တွေရေးထားတဲ့ java method တွေ။ (GWT Framework မှာဆိုရင် native method တွေရှိပါတယ် ။ Java Class အတွင်းက JavaScript code တွေ)

၆၂ ။ Annonymous Class တစ်ခုကို Interface တစ်ခု implement လုပ် ၊ Class တစ်ခု extend လုပ်တဲ့ပုံစံနဲ.ကြေငြာလို.ရလား ?

Annonymous class က interface ကို implement လုပ်လို.ရပါတယ်။ Class ကိုလည်း extend လုပ်လို.ရပါတယ်။ ဒါပေမယ့် Interface တစ်ခုကို implement လုပ် ၊ Class တစ်ခုကို extend လုပ်တဲ့ပုံစံနဲ. တော့ ရေးလို.မရပါဘူး။

၆၃ ။ Class တစ်ခုကို ဘာ Access modifier (private , protected , package , public) မှမပါပဲ ကြေငြာထားရင် အဲဒီ့ Class ကိုဘယ်တွေကနေ ခေါ်သုံးလို.ရသလဲ ?

Class တစ်ခုကို ဘာ Access modifier မှ မပါပဲ ကြေငြာထားရင် package access လို. အဓိပ္ပာယ်ရောက်ပါတယ်။ package access ဆိုတာ same package အတွင်းမှာရှိတဲ့ interface တွေ ၊ Class တွေကနေ ခေါ်သုံးလို.ရပါတယ်။

၆၄ ။ sub-class တစ်ခုဟာ super-class ရဲ. Constructor တွေကို inherit လုပ်သလား ?

Sub-class တွေဟာ ဘယ် parent class ရဲ. Constructor တွေကိုမှ inherit မလုပ်ပါ။

၆၅ ။ Swith Statement တွေရဲ. Case တွေဟာ ဘာကန်.သတ်မှုရှိသလဲ ?

Compile time ရောက်တဲ့အခါမှာ Case အတွင်းမှာရှိတဲ့ value ဟာ int value အဖြစ်ကို ပြောင်းကိုပြောင်းလို.ရရမယ်။ အဲတာကြောင့် char value နဲ.စစ်လို.ရပေမယ့်လည်း compile လုပ်တဲ့အခါမှာ အဲဒီ့ char ရဲ. Char value ကိုသာ တွက်ချက် အသုံးပြုပါတယ်။

        public static void main(String[] args) {
            char c = 'a';
            switch (c) {
            case 'a':
                System.err.println("Catch it !");
                break;

            default:
                break;
            }
        }

၆၆ ။ local inner class တွေဟာ ဘာ modifier တွေသုံးလို.ရလဲ ?

Local Inner Class တွေဟာ final ဒါမှမဟုတ် abstract ပဲ ဖြစ်ရပါမယ်။

၆၇ ။ method တစ်ခုကို protected နဲ.ကြေငြာရင် သူ.က ဘယ်နေရတွေကနေ ခေါ်သုံးလို.ရလဲ ?

protected variable ကဲ့သို.ပင် same package အတွင်းရှိ class များ ၊ interface များ ၊ ၎င်း class ၏ sub-class များမှ ခေါ်ယူ အသုံးပြုနိုင်ပါသည်။

၆၈ ။ instanceof operator ကိုဘယ်လိုရေးရမလဲ ?

ဘယ်ဘက်အခြမ်းမှာ object refrences တွေ (null ဖြစ်လို.လည်းရတယ်) ။ ညာဖက်အခြမ်းမှာ Class , Interface , Array Type ဖြစ်ရမယ်။

၆၉ ။ String object ထဲကို double value ထည်.လိုက်ရင် ဘာဖြစ်သွားမလဲ ?

၎င်း double value ဟာ String Object ဖြစ်သွားပါမယ်။

၇၀ ။ inner class နဲ. Nested class နဲ. ဘာကွာလဲ ?

Class တစ်ခုအတွင်းမှာ နောက်ထပ် Class တစ်ခုဆောက်လိုက်ရင် ထို Class ကို inner class လို.ခေါ်ပါတယ်။ တကယ်လို. Inner class ကို static နဲ.ကြေငြာလိုက်ရင် အဲဒီ့ inner class ကို nested class လို.ခေါ်ပါတယ်။

၇၁ ။ Numeric promotion ဆိုတာဘာလဲ ?

Numeric promotion ဆိုတာ size သေးတဲ့ numeric type ကနေ size ကြီးတဲ့ numeric type ကိုပြောင်းတာကိုပြောတာပါ။ ဥပမာ ... byte , char , short value တွေကို int value ပြောင်းတာ ။ int value တွေကို long , float ပြောင်းတာ ။ long , float value တွေကို double ပြောင်းတာ စသည်ဖြင့်။

၇၂ ။ public class နဲ. Non-public class ဘာကွာလဲ ?
public class တွေဟာ package ရဲ. အပြင်ဘက်ကနေ ခေါ်သုံးလို.ရပြီး non-public class တွေဟာ package အတွင်းထဲမှာသာ ခေါ်သုံးလို.ရပါတယ်။

၇၃ ။ Boolean type value တွေရဲ. Default value က ဘာလဲ ?

False

၇၄ ။ ++ operator ကို prefix ရေးတာနဲ. Postfix ရေးတာ ဘာကွာလဲ ?

Prefix က တိုးတဲ့အလုပ်ကို အရင် လုပ်တယ် ။ ပြီးမှ တိုးလို.ရလာတဲ့တန်ဖိုးကို return ပြန်တယ်။ postfix က လက်ရှိတန်ဖိုးကို return ပြန်တယ် ။ ပြီးမှ လက်ရှိ ရှိနေတဲ့ value ကို တိုးလိုက်တယ်။

၇၅ ။ top-level class တွေမှာ သုံးလို.ရတဲ့ modifier တွေက ဘာတွေလဲ ?

public , abstract or final

၇၆ ။ if-statement နဲ. switch-statement ဘာကွာလဲ ?

If-statement ဟာ Boolean expression ကို အသုံးပြုပြီး ရွေးချယ်စရာ နှစ်ခုအနေနဲ. အလုပ်လုပ်တယ်။
switch-statement ဟာ int expression ကိုအသုံးပြုပြီး ရွေးချယ်စရာ အများအပြား အနေနဲ. အလုပ်လုပ်တယ်။ စကားချပ် - Java 7 မှာ String case နဲ.ရတယ်ဆိုပေမယ့်လည်း အတွင်းပိုင်းမှာတော့ int case အနေနဲ.ပဲ အလုပ်လုပ်တယ်လို.သိရပါတယ်။

၇၈ ။ method တစ်ခုကို overload လုပ်မယ်။ နာမည်တူမယ်။ arguments တွေထပ်တူညီမယ်။ ဒါပေမယ့် return type မတူဘူး ။ ရလား ?

မရပါဘူး ။ ဘာလို.လဲ ဆိုတော့ method တွေကို ခေါ်တဲ့နေရာမှာ method ရဲ. Return type ကို ဂရုမစိုက်ပါ။ အဲတာကြောင့် compiler ကို ambiguity(ဝေခွဲမရဖြစ်စေ) တာကြောင့်ပါ။

၇၉ ။ overriding နဲ. Overloading ဘာကွာလဲ ?

Overriding ဆိုတာ parent class ရဲ. Method နဲ. နာမည်တူ တယ် ၊ argument type တွေ အရေအတွက်တွေတူတယ်။ Overloading ကတော့ method နဲ.နာမည်တူပေမယ့် argument type တွေ သို.မဟုတ် argument အရေအတွက်တွေကွဲပြားပါတယ်။

၈၀ ။ break statement နဲ. continue statement ဘာကွာလဲ ?

break statement ဟာ current loop (do ,do…while , for , switch) ရဲ. လုပ်ဆောင်ချက်ကို အဆုံးသတ်လိုက်တာဖြစ်ပါတယ်။ current loop ကနေအပြီးထွက်သွားပါတယ်။ continue statement ဟာ current iteration ကို သာ skip လုပ်သွားစေပြီး looping ကို ဆက်လက် လည်ပတ်စေပါတယ်။

Tagged:
Thanked by 1 CalmHill

မှတ်ချက်များ

Sign In or Register to comment.