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

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

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

服務器之家 - 編程語言 - Java教程 - java開發中嵌套類的詳解及實例

java開發中嵌套類的詳解及實例

2020-12-04 08:50liuyi1207164339 Java教程

這篇文章主要介紹了 java開發中嵌套類的詳解及實例的相關資料,一般把定義內部類的外圍類成為包裝類(enclosing class)或者外部類,需要的朋友可以參考下

 java開發中嵌套類的詳解

在java語言規范里面,嵌套類(Nested Classes)定義是:

A nested class is any class whose declaration occurs within the body of another class or interface. A top level class is a class that is not a nested class.

說的簡單一點,就是定義在類里面的類。一般把定義內部類的外圍類成為包裝類(enclosing class)或者外部類

嵌套類分類

根據nested class定義的地方,可以分為member nested class,local nested class , anonymous nested class

  1. member nested class(成員嵌套類) :成員嵌套類 作為 enclosing class 的成員定義的,成員嵌套類有enclosing class屬性
  2. local nested class (局部嵌套類): 局部嵌套類定義在 enclosing class 的方法里面,局部嵌套類有enclosing class 屬性和enclosing method 屬性
  3. anonymous nested class(匿名嵌套類):匿名嵌套類沒有顯示的定義一個類,直接通過new 的方法創建類的實例。一般回調模式情況下使用的比較多

 member nested class 可以使用public,private,protected訪問控制符,也可以用static,final關鍵字

local nested class 可以使用final關鍵字

anonymous nested class 不使用任何關鍵字和訪問控制符

來自Java編程思想:

如果不需要內部類對象與外圍類對象之間有聯系,那么可以將內部類聲明為static。這通常稱為嵌套類。要想理解static應用于內部類時的含義,就必須記住,普通的內部類對象隱式地保存了一個引用,指向創建它的外圍類對象。然而,當內部類時static的時候,就不是這樣了。嵌套類意味著:

要創建嵌套類的對象,并不需要其外圍對象。

不能從嵌套類的對象中訪問非靜態的外圍類對象。

嵌套類與普通的內部類還有一個區別。普通內部類的字段與方法,只能放在類的外部層次上,所以普通的內部類不能有static數據和static字段(這就是為什么單例設計模式中,內部類為什么必須是靜態的原因了),也不能包含嵌套類,但是嵌套類可以包含所有這些東西!

下面是懶漢式單例模式的代碼:

?
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
33
34
package com.easyliu.staticinnerclass;
 
/**
 * 懶漢式單例
 * @author EasyLiu
 *
 */
public class Singleton {
  private Singleton() {
    System.out.println("Singleton-init");
  }
 
  /**
   *
   * @author EasyLiu 嵌套類(靜態類)
   *
   */
  private static class SingletonHolder {
    private final static Singleton INSTANCE = new Singleton();
  }
 
  public static Singleton getInstance() {
    return SingletonHolder.INSTANCE;
  }
 
  public static void main(String[] args) {
    //測試Singleton會初始化幾次
    Singleton.getInstance();
    Singleton.getInstance();
    Singleton.getInstance();
    Singleton.getInstance();
    Singleton.getInstance();
  }
}

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

原文鏈接:http://blog.csdn.net/liuyi1207164339/article/details/50877669

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 女娃开嫩苞经历小说 | 免费观看成年肉动漫网站 | 免费观看无遮挡www的小视频 | 日本人妖网站 | 亚洲入口 | 99精品视频免费在线观看 | 天天碰夜夜操 | 好涨好爽好大视频免费 | 久久精品视在线观看85 | 国产成人愉拍免费视频 | 精品国产一区二区在线观看 | 91视频国产精品 | 色吧导航 | 99在线免费视频 | 免费观看欧美性一级 | 99视频在线观看视频 | 拿捏小说 | 性色欲情网站IWWW | www一级片| 饱满奶大30p | 国产综合成色在线视频 | 欧美日韩一区二区三区免费 | 国产精品资源在线观看网站 | 久久三级网站 | 日本人妖在线 | 日本一区视频在线 | 欧美在线播放一区二区 | 色悠久久久久综合网小说 | 亚洲AV综合99一二三四区 | 女女同性做爰xxoo亲吻 | 国产一区二区三区在线观看视频 | 亚洲一二三区久久五月天婷婷 | 無码一区中文字幕少妇熟女网站 | 日本视频在线观看播放 | 精品久久久久久久久久久 | 亚洲天堂免费看 | 久久成人免费大片 | 国产91影院 | 国产特黄一级一片免费 | 日产乱码2021永久手机版 | 青青草精品在线观看 |