最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java開發(fā)中嵌套類的詳解及實(shí)例

 更新時(shí)間:2017年07月19日 14:13:38   作者:liuyi1207164339  
這篇文章主要介紹了 java開發(fā)中嵌套類的詳解及實(shí)例的相關(guān)資料,一般把定義內(nèi)部類的外圍類成為包裝類(enclosing class)或者外部類,需要的朋友可以參考下

 java開發(fā)中嵌套類的詳解

在java語言規(guī)范里面,嵌套類(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.

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

嵌套類分類

根據(jù)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(匿名嵌套類):匿名嵌套類沒有顯示的定義一個(gè)類,直接通過new 的方法創(chuàng)建類的實(shí)例。一般回調(diào)模式情況下使用的比較多

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

local nested class 可以使用final關(guān)鍵字

anonymous nested class 不使用任何關(guān)鍵字和訪問控制符

來自Java編程思想:

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

要?jiǎng)?chuàng)建嵌套類的對象,并不需要其外圍對象。

不能從嵌套類的對象中訪問非靜態(tài)的外圍類對象。

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

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

package com.easyliu.staticinnerclass; 
 
/** 
 * 懶漢式單例 
 * @author EasyLiu 
 * 
 */ 
public class Singleton { 
  private Singleton() { 
    System.out.println("Singleton-init"); 
  } 
 
  /** 
   * 
   * @author EasyLiu 嵌套類(靜態(tài)類) 
   * 
   */ 
  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會(huì)初始化幾次 
    Singleton.getInstance(); 
    Singleton.getInstance(); 
    Singleton.getInstance(); 
    Singleton.getInstance(); 
    Singleton.getInstance(); 
  } 
} 

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

相關(guān)文章

  • Java異常處理的五個(gè)關(guān)鍵字

    Java異常處理的五個(gè)關(guān)鍵字

    本篇文章給大家詳細(xì)講述了關(guān)于Java異常處理的相關(guān)知識(shí)點(diǎn),并列舉了5個(gè)重要關(guān)鍵字,一起啊參考學(xué)下。
    2018-03-03
  • jar包運(yùn)行一段時(shí)間后莫名其妙掛掉線上問題及處理方案

    jar包運(yùn)行一段時(shí)間后莫名其妙掛掉線上問題及處理方案

    這篇文章主要介紹了jar包運(yùn)行一段時(shí)間后莫名其妙掛掉線上問題及處理方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • SpringCloud讀取Nacos配置中心報(bào)錯(cuò)及遇到的坑:Could?not?resolve?placeholder?‘xxx’?in?value?‘${xxx}

    SpringCloud讀取Nacos配置中心報(bào)錯(cuò)及遇到的坑:Could?not?resolve?placehold

    這篇文章主要介紹了SpringCloud讀取Nacos配置中心報(bào)錯(cuò):Could?not?resolve?placeholder?‘xxx’?in?value?‘${xxx},本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Java連接超時(shí)的幾種情況以及讀取代碼

    Java連接超時(shí)的幾種情況以及讀取代碼

    在Java編程中連接超時(shí)異常是指在建立網(wǎng)絡(luò)連接時(shí),無法在給定的時(shí)間內(nèi)成功建立連接的異常,這篇文章主要給大家介紹了關(guān)于Java連接超時(shí)的幾種情況以及讀取的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • java中的匿名內(nèi)部類總結(jié)

    java中的匿名內(nèi)部類總結(jié)

    這篇文章主要介紹了 java中的匿名內(nèi)部類總結(jié)的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 詳解Java中的ThreadLocal

    詳解Java中的ThreadLocal

    ThreadLocal是JDK包提供的,它提供線程本地變量,如果創(chuàng)建一個(gè)ThreadLocal變量,那么訪問這個(gè)變量的每個(gè)線程都會(huì)有這個(gè)變量的一個(gè)副本,在實(shí)際多線程操作的時(shí)候,操作的是自己本地內(nèi)存中的變量,從而規(guī)避了線程安全問題
    2021-06-06
  • java反射之方法反射的基本操作方法

    java反射之方法反射的基本操作方法

    下面小編就為大家?guī)硪黄猨ava反射之方法反射的基本操作方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 淺析Java編程中類和對象的定義

    淺析Java編程中類和對象的定義

    下面小編就為大家?guī)硪黄獪\析Java編程中類和對象的定義。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-05-05
  • Java線程同步、同步方法實(shí)例詳解

    Java線程同步、同步方法實(shí)例詳解

    本篇文章主要通過實(shí)例介紹了Java線程:線程的同步-同步方法,需要的朋友可以參考下
    2017-04-04
  • SpringBoot監(jiān)控模塊Actuator的用法詳解

    SpringBoot監(jiān)控模塊Actuator的用法詳解

    Spring?Boot?Actuator?是?Spring?Boot?自帶的一個(gè)功能模塊,提供了一組已經(jīng)開箱即用的生產(chǎn)環(huán)境下常用的特性和服務(wù),比如應(yīng)用程序的健康檢查、信息暴露、度量收集、日志記錄等,本文將給大家詳細(xì)SpringBoot監(jiān)控模塊Actuator的用法
    2023-06-06

最新評論

志丹县| 阿荣旗| 达拉特旗| 横峰县| 龙游县| 靖边县| 项城市| 景洪市| 广宗县| 望城县| 永昌县| 上高县| 南漳县| 三原县| 吴旗县| 奉化市| 洮南市| 兰溪市| 扬州市| 拜泉县| 涿鹿县| 江孜县| 禹州市| 东海县| 黔西| 华亭县| 威宁| 郑州市| 洮南市| 永德县| 浦东新区| 喀喇| 武冈市| 康平县| 阳江市| 玉树县| 宁波市| 施秉县| 台中市| 启东市| 靖江市|