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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

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

java 內(nèi)部類(匿名類,匿名對象,靜態(tài)內(nèi)部類)詳解及實例

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

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

內(nèi)部類的介紹

定義在另外一個類中的類,叫內(nèi)部類

成員內(nèi)部類

1..new 創(chuàng)建成員內(nèi)部類必須先創(chuàng)建外部類的實例,然后通過.new 創(chuàng)建內(nèi)部類的對象

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
    }
  }
}

匿名內(nèi)部類

沒有名字的類,創(chuàng)建類的同時,也會創(chuàng)建一個對象。

只需要用到一次的類,就可以使用匿名內(nèi)部類

?
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("線程結(jié)束!");
        } catch (Exception e) {
          e.printStackTrace();
        }
        super.run();
      }
 
    }.start();

靜態(tài)內(nèi)部類

1.靜態(tài)內(nèi)部類只能訪問外部類靜態(tài)的方法和變量,不能訪問非靜態(tài)。

2.靜態(tài)內(nèi)部類可以不需要創(chuàng)建外部類的引用,而直接創(chuàng)建。

匿名內(nèi)部類訪問局部變量

內(nèi)部類訪問局部變量必須final,如果沒有加,jdk1.8默認加上去了
當(dāng)所使用的變量是在變的時候可以用下面的方法,也可以把下面的i在開始的時候定為靜態(tà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();
 
    }

下面介紹一下內(nèi)部類的實現(xiàn)技巧

?
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();
    //第一種實現(xiàn)的方法
    mLam.to(new Ligh() {
      @Override
      public void shin() {
        System.out.println("on的第一種方法");
      }
    });
    //第二種實現(xiàn)方法
    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");
  }
}

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 范冰冰a级一级特级毛片 | 日韩a一级欧美一级 | 精品久久成人 | 日韩天堂视频 | 亚洲麻豆精品 | 国产精品一二区 | 日本在线观看免费高清 | 精品一区二区三区免费观看 | 欧美一区二区三区综合色视频 | 九九国产视频 | 短篇同学新婚h系列小说 | 亚洲午夜小视频 | 插美女b| 美女被狂干 | 亚洲一区 在线播放 | 视频免费观看在线播放高清 | 性夜夜春夜夜爽AA片A | 免费一级片在线观看 | 天天操天天舔 | 日本美女视频韩国视频网站免费 | 深夜日韩| 久久黄色小视频 | 天天白天天谢天天啦 | 亚洲日韩精品欧美一区二区 | 亚洲 无码 制服 日韩 | 精品久久看 | 国产精品久久久精品日日 | 香蕉视频在线观看网站 | 午夜欧美福利视频 | 楚乔传第二部免费观看全集完整版 | bl超h 高h 污肉快穿np | 国产91素人搭讪系列天堂 | 精精国产xxxx视频在线播放器 | 日本sss| 日韩一区二三区无 | 91在线老王精品免费播放 | 男女xxoo做爰猛烈动态一 | yy6080久久国产伦理 | 欧美日本道免费一区二区三区 | 国产亚洲综合成人91精品 | 免费网站看v片在线成人国产系列 |