一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java 內部類(匿名類,匿名對象,靜態內部類)詳解及實例

java 內部類(匿名類,匿名對象,靜態內部類)詳解及實例

2020-07-19 11:43JAVA之家 Java教程

這篇文章主要介紹了java 內部類詳解及實例代碼的相關資料,需要的朋友可以參考下

內部類的介紹

定義在另外一個類中的類,叫內部類

成員內部類

1..new 創建成員內部類必須先創建外部類的實例,然后通過.new 創建內部類的對象

2..this 可以通過外部類的類名.this去訪問外部類的所有屬性和方法。

java" id="highlighter_376080">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Test1 {
 
  String name = "asnd";
 
  public static void main(String[] args) {
 
    Test1 test1 = new Test1();
    Inner mInner = test1.new Inner();
    mInner.print();
  }
 
  void show() {
    System.out.println("show");
  }
 
  public class Inner {
 
    String name = "123";
    private void print(){
      show();
      System.out.println(name);//打印的是123
      System.out.println(Test1.this.name);//打印的是asnd
    }
  }
}

匿名內部類

沒有名字的類,創建類的同時,也會創建一個對象。

只需要用到一次的類,就可以使用匿名內部類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
File file = new File("D:/cc.txt") {
 
    @Override
    public boolean delete() {
      System.out.println("是否刪除y/n");
      Scanner input = new Scanner(System.in);
      String str = input.next();
      if (str.equals("y")) {
        return super.delete();
      }
      System.out.println("刪除失敗");
      return false;
    }
  };
  file.delete();
 
}

匿名對象

該對象只需要訪問一次.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
new Thread() {
 
      @Override
      public void run() {
        System.out.println("線程開始!");
        try {
          Thread.sleep(2000);
          System.out.println("線程結束!");
        } catch (Exception e) {
          e.printStackTrace();
        }
        super.run();
      }
 
    }.start();

靜態內部類

1.靜態內部類只能訪問外部類靜態的方法和變量,不能訪問非靜態。

2.靜態內部類可以不需要創建外部類的引用,而直接創建。

匿名內部類訪問局部變量

內部類訪問局部變量必須final,如果沒有加,jdk1.8默認加上去了
當所使用的變量是在變的時候可以用下面的方法,也可以把下面的i在開始的時候定為靜態的

?
1
2
3
4
5
6
7
8
9
for (int i = 0; i < 5; i++) {
      final int finali = i;
      new Thread() {
        public void run() {
          System.out.println(finali);
        };
      }.start();
 
    }

下面介紹一下內部類的實現技巧

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public static void main(String[] args) {
    Lam mLam = new Lam();
    //第一種實現的方法
    mLam.to(new Ligh() {
      @Override
      public void shin() {
        System.out.println("on的第一種方法");
      }
    });
    //第二種實現方法
    class MyLam implements Ligh{
 
      @Override
      public void shin() {
        System.out.println("第二種");
 
      }}
 
    mLam.to(new MyLam());
  }
}
 
interface Ligh {
  void shin();
}
 
class Lam {
  public void to(Ligh ligh) {
    ligh.shin();
    System.out.println("on");
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内精品视频九九九九 | 成人在线观看免费视频 | 成年人福利 | 亚洲另类老妇videos | 欧美国产精品 | 日韩精品中文字幕视频一区 | 99热在线获取最新地址 | 亚洲欧美专区精品久久 | 午夜想想爱 | 海派甜心完整版在线观看 | 精品一成人岛国片在线观看 | 成人精品一区久久久久 | 国产精品一区二区三区久久 | 好大好硬好长好爽a网站 | 色啊色 | 性xxxx欧美高清 | 亚洲第一区在线观看 | 亚洲一区二区精品推荐 | 99爱免费视频 | 久久综合狠狠综合狠狠 | 日韩欧美在线一区二区三区 | 精彩国产萝视频在线 | 精品久久综合一区二区 | 二次元美女扒开内裤露尿口 | 日韩毛片免费 | 娇妻被又大又粗又长又硬好爽 | 呜呜别塞了啊抽插 | 91九色porn偷拍在线 | 麻豆最新| 青青草精品在线观看 | 国产午夜精品久久理论片小说 | 日韩精品成人a在线观看 | 精品无码乱码AV | 操骚0 | 91九色最新地址 | 欧美另类老女人 | 亚洲一区二区三区久久精品 | 日本欧美大码a在线视频播放 | 2019亚洲男人天堂 | 亚洲高清国产拍精品影院 | 成人免费视频一区二区三区 |