天天看點

java語言基礎(46)——内部類概述及使用

内部類定義:

把類定義在其它類内部,這個類就被稱為内部類。

内部類的通路特點:

(1)内部類可以直接通路外部類的成員,包括私有

(2)外部類要通路内部類的成員,必須new對象。

内部類的分類:

(1)成員内部類:在成員位置定義的類

(2)局部内部類:在方法内部定義的類

成員内部類的直接調用:

格式:外部類名.内部類名   對象名 = 外部類對象.内部類對象。

例如:

class Outer
{
  class Inner
  {
    public void show(){
      System.out.println("Inner show");
    }
  }
}

class InnerClassTest
{
  public static void main(String[] args){
          // 調用格式
    Outer.Inner oi = new Outer().new Inner();
    oi.show();//輸出  Inner show
  }
}      

但是上述調用方法,有悖于我們的封裝思想。既然是定義在類内部的類,就是為了更好的提現封裝的思想。不能輕易讓外界通路,是以我們一般給成員内部類加  private 權限修飾,然後,我們可以通過外部類的一個公開的方法通路内部類。

靜态修飾後的内部類的調用:

靜态可以修飾内部類,是因為内部類可以看做是類的成員。

格式:外部類名.内部類名  對象名  =  new 外部類名.内部類名();

例如:

class Outer
{
  static class Inner
  {
    public void show(){
      System.out.println("static Inner show");
    }
    public static void show2(){
      System.out.println("static Inner show2");
    }
  }
}

class InnerClassTest
{
  public static void main(String[] args){
      // 調用格式
    Outer.Inner oi = new Outer.Inner();
    oi.show();//輸出  static Inner show
      oi.show2();//輸出  static Inner show2
    // 由于Inner是靜态類,并且show2是靜态方法,
    // 我們還可以這樣調用 show2
    Outer.Inner.show2();
  }
}      

繼續閱讀