91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一文讀懂Java中的局部內部類

發布時間:2020-11-07 17:16:51 來源:億速云 閱讀:190 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關一文讀懂Java中的局部內部類,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

局部內部類是什么?顧名思義,那就是定義在局部內部的類(逃)。開玩笑的,局部內部類就是定義在代碼塊、方法體內、作用域(使用花括號“{}”括起來的一段代碼)內的類。局部內部類有以下特性:

  1. 局部內部類只能在代碼代碼塊、方法體內和作用域中使用。
  2. 局部內部類同樣可以無限制調用外部類的方法和屬性。
  3. 可以使用abstract修飾,聲明為抽象類。
     

  舉個栗子:

public class Outer2 {
  public void print(){
    class Inner2{
      public void test(){
        System.out.println("Inner.print()");
      }
    }
    Inner2 inner2 = new Inner2();
    inner2.test();
  }
}
public class Test {
  public static void main(String[] args) {
    Outer2 outer2 = new Outer2();
    outer2.print();
  }
}

  這里的Inner2類僅僅在Outer2的print方法中被使用,有效范圍也僅在print函數之內。

  通過這段玩具代碼,可能無法理解為什么java中要出現這樣限制這么多而且挺復雜的東西。讓我們來看看之前的栗子:Java中的回調

  這里把代碼復制過來:

public class TimePrinter implements ActionListener {
  @Override
  public void actionPerformed(ActionEvent e) {
    Date now = new Date();
    System.out.println("Time is " + now + " now.");
  }
}
public class Test {
  public static void main(String[] args) {
    ActionListener listener = new TimePrinter();
    Timer t = new Timer(1000,listener);
    t.start();
    JOptionPane.showMessageDialog(null,"Quit program?");//彈出對話框,防止主線程結束導致時鐘結束
    System.exit(0);
  }
}

  在這里,我們想要創建一個Timer時,需要往里面傳入一個實現了ActionListener接口的對象,而這個對象僅僅在該方法中使用了一次,這時候內部類的優勢就體現出來了,把類封裝在方法中,不向外界提供任何冗余信息:

public class Test {
  public static void main(String[] args) {
    class InnerTimePrinter implements ActionListener {
      @Override
      public void actionPerformed(ActionEvent e) {
        Date now = new Date();
        System.out.println("Time is " + now + " now.");
      }
    }
    ActionListener listener = new InnerTimePrinter();
    Timer t = new Timer(1000,listener);
    t.start();
    JOptionPane.showMessageDialog(null,"Quit?");
    System.exit(0);
  }
}

關于一文讀懂Java中的局部內部類就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德保县| 揭东县| 湖南省| 北安市| 綦江县| 项城市| 梅河口市| 通辽市| 兰溪市| 平安县| 仪陇县| 柳林县| 长宁县| 宁武县| 达孜县| 新安县| 德钦县| 体育| 邹平县| 丽江市| 共和县| 苗栗市| 环江| 包头市| 南陵县| 宿州市| 毕节市| 津南区| 无极县| 拜城县| 岳池县| 太康县| 南乐县| 陈巴尔虎旗| 澎湖县| 竹溪县| 屏东县| 罗田县| 乐亭县| 龙门县| 清苑县|