Java ကျူတိုရီရယ်များ

Java ပင်မစာမျက်နှာ Java မိတ်ဆက် Java စတင်လိုက်ပါ။ Java Syntax Java မှတ်ချက်များ Java Variables များ Java Data အမျိုးအစားများ Java အမျိုးအစား Casting Java Operator များ Java စာတန်းများ Java သင်္ချာ Java Booleans Java ဆိုလျှင်... အခြား Java Switch Java while Loop Java For Loop Java Break/Continue Java Arrays

Java နည်းလမ်းများ

Java နည်းလမ်းများ Java Method ကန့်သတ်ချက်များ Java Method လွန်ကဲခြင်း။ Java နယ်ပယ် Java Recursion

Java အတန်းများ

Java OOP Java အတန်းများ/အရာဝတ္ထုများ Java Class Attribute များ Java Class Methods Java တည်ဆောက်သူများ Java ပြုပြင်မွမ်းမံမှုများ Java Encapsulation Java Packages / API Java အမွေအနှစ် Java Polymorphism Java အတွင်းပိုင်းအတန်းများ Java Abstraction Java Interface Java စာရင်းများ Java အသုံးပြုသူ ထည့်သွင်းမှု Java နေ့စွဲ Java ArrayList Java LinkedList Java HashMap Java HashSet Java Iterator Java Wrapper အတန်းများ Java ခြွင်းချက်များ Java RegEx Java Threads Java Lambda

Java ဖိုင်ကို ကိုင်တွယ်ခြင်း။

Java ဖိုင်များ Java ဖိုင်များကို ဖန်တီး/ရေးပါ။ Java ဖိုင်များကိုဖတ်ပါ။ Java ဖိုင်များကိုဖျက်ပါ။

Java လုပ်နည်း

နံပါတ်နှစ်ခုထည့်ပါ။

Java အကိုးအကား

Java သော့ချက်စာလုံးများ Java စာတန်းနည်းလမ်းများ Java သင်္ချာနည်းလမ်းများ

Java ဥပမာများ

Java ဥပမာများ Java Compiler Java လေ့ကျင့်ခန်းများ Java Quiz Java လက်မှတ်


Java အတွင်းပိုင်းအတန်းများ


Java အတွင်းပိုင်းအတန်းများ

Java တွင်၊ ၎င်းသည် အတန်းများ (အတန်းတစ်ခုအတွင်းရှိ အတန်း) ကိုလည်း အစုအဝေးပြုလုပ်နိုင်သည်။ nested classes များ၏ ရည်ရွယ်ချက်မှာ သင့်ကုဒ်ကို ပိုမိုဖတ်ရှုနိုင်စေပြီး ထိန်းသိမ်းနိုင်စေမည့် အတန်းများကို အုပ်စုဖွဲ့ရန်ဖြစ်သည်။

အတွင်းအတန်းကို ဝင်ရောက်ရန်၊ ပြင်ပအတန်း၏ အရာဝတ္ထုတစ်ခုကို ဖန်တီးပြီးနောက် အတွင်းအတန်း၏ အရာဝတ္ထုတစ်ခုကို ဖန်တီးပါ။

ဥပမာ

class OuterClass {
  int x = 10;

  class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.y + myOuter.x);
  }
}

// Outputs 15 (5 + 10)


သီးသန့်အတွင်းခန်း

"ပုံမှန်" အတန်းနှင့်မတူဘဲ၊ အတွင်းအတန်းသည် privateသို့မဟုတ် protected. ပြင်ပအရာဝတ္တုများကို အတွင်းအတန်းထဲသို့ မဝင်ရောက်လိုပါက၊ အတန်းကို privateအောက်ပါအတိုင်း ကြေညာပါ။

ဥပမာ

class OuterClass {
  int x = 10;

  private class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.y + myOuter.x);
  }
}

အကယ်၍ သင်သည် ပြင်ပအတန်းမှ သီးသန့်အတွင်းခန်းကို ဝင်ရောက်ရန် ကြိုးစားပါက အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်သည်-

Main.java:13: error: OuterClass.InnerClass has private access in OuterClass
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
              ^



Static Inner Class

အတွင်းအတန်းတစ်ခုလည်း ဖြစ်နိုင်သည် static၊ ဆိုလိုသည်မှာ ပြင်ပအတန်း၏ အရာဝတ္ထုတစ်ခုကို မဖန်တီးဘဲ ၎င်းကို သင်ဝင်ရောက်နိုင်သည်-

ဥပမာ

class OuterClass {
  int x = 10;

  static class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass.InnerClass myInner = new OuterClass.InnerClass();
    System.out.println(myInner.y);
  }
}

// Outputs 5

မှတ်ချက်-static အရည်အချင်းများနှင့် နည်းလမ်းများကဲ့သို့ပင်၊ အတွင်းအတန်းတစ်ခုသည် ပြင်ပ staticအတန်း၏အဖွဲ့ဝင်များကို ဝင်ရောက်ခွင့်မရှိပါ။


Inner Class မှ Outer Class သို့ ဝင်ရောက်ပါ။

အတွင်းအတန်းများ၏ အားသာချက်တစ်ခုမှာ၊ ၎င်းတို့သည် ပြင်ပအတန်း၏ အရည်အချင်းများနှင့် နည်းလမ်းများကို ရယူနိုင်ခြင်းဖြစ်သည်-

ဥပမာ

class OuterClass {
  int x = 10;

  class InnerClass {
    public int myInnerMethod() {
      return x;
    }
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.myInnerMethod());
  }
}

// Outputs 10